Description de l'implémentation des fonctions la bibliothèque Utils pour Python¶
Récupération de la mac adresse¶
La fonction get_mac_address
qui récupère l'adresse MAC d'une interface réseau spécifiée sur un Raspberry Pi. La fonction utilise des commandes système pour obtenir les informations réseau et des expressions régulières pour extraire l'adresse MAC.
Bibliothèques importées¶
re
: La bibliothèquere
fournit des opérations de correspondance de motifs via des expressions régulières. Elle est utilisée ici pour rechercher et extraire l'adresse MAC du résultat de la commande système.subprocess
: La bibliothèquesubprocess
permet d'exécuter des commandes système. Dans ce code, elle est utilisée pour exécuter la commandeifconfig
et récupérer les informations réseau.
Fonction : get_mac_address
¶
La fonction get_mac_address(interface)
récupère l'adresse MAC de l'interface réseau spécifiée.
Paramètres¶
interface
(str) : Le nom de l'interface réseau pour laquelle récupérer l'adresse MAC (par exemple, "eth0", "wlan0").
Retourne¶
- (str) : L'adresse MAC de l'interface réseau sous forme de chaîne de caractères si elle est trouvée, sinon
None
.
Fonctionnement¶
-
Exécution de la commande système :
La commandeifconfig
est exécutée pour l'interface spécifiée, et le résultat est capturé. -
Décodage et recherche de l'adresse MAC :
Le résultat de la commandeifconfig
est décodé en une chaîne de caractères. Une expression régulière est utilisée pour rechercher le motif d'une adresse MAC dans la chaîne. -
Retour de l'adresse MAC :
Si une adresse MAC est trouvée, elle est retournée. Sinon, la fonction retourneNone
. -
Gestion des exceptions :
Si une exception se produit lors de l'exécution de la commande ou de la recherche de l'adresse MAC, la fonction retourneNone
.
Code complet¶
import re
import subprocess
def get_mac_address(interface):
"""Recupére la mac adresse du raspberry"""
try:
result = subprocess.check_output(["ifconfig", interface])
mac_address = re.search(r"([0-9a-f]{2}:){5}[0-9a-f]{2}", str(result.decode()))
if mac_address:
return mac_address.group(0)
else:
return None
except Exception as e:
return None
Explication du code¶
-
Commande
ifconfig
: La commandeifconfig
est utilisée pour afficher les configurations réseau des interfaces sur un système Unix/Linux. Elle inclut des informations telles que l'adresse IP, l'adresse MAC, et l'état de l'interface. -
Expression régulière : L'expression régulière
r"([0-9a-f]{2}:){5}[0-9a-f]{2}"
correspond au format d'une adresse MAC (six paires de caractères hexadécimaux séparées par des deux-points). -
Décodage de la sortie de la commande : La sortie de la commande
ifconfig
est en bytes. La méthodedecode()
convertit ces bytes en une chaîne de caractères pour permettre l'analyse textuelle. -
Gestion des exceptions : La gestion des exceptions garantit que la fonction retourne
None
en cas de problème (par exemple, si l'interface réseau n'existe pas ou si la commandeifconfig
échoue).