Réponses:
Ce qui suit est un fragment d'un script bash que j'utilise pour déterminer le MAC d'Ethernet, ou s'il n'existe pas de WiFi (pour Pi Zero W).
Il ne repose pas sur ifconfigou toute autre méthode de détection des IP allouées et a juste besoin du système pour détecter le matériel réseau.
Cela fonctionne pour Jessie, Stretch ou Buster
# Find MAC of eth0, or if not exist wlan0
if [ -e /sys/class/net/eth0 ]; then
MAC=$(cat /sys/class/net/eth0/address)
elif [ -e /sys/class/net/enx* ]; then
MAC=$(cat /sys/class/net/enx*/address)
else
MAC=$(cat /sys/class/net/wlan0/address)
fi
Fondamentalement, vous pouvez utiliser MAC=$(cat /sys/class/net/wlan0/address)pour trouver le MAC du WiFi intégré sur Pi3 ou Pi Zero W.
MAC=$(cat /sys/class/net/wlx*/address) devrait fonctionner sur les dongles WiFi sur Stretch, mais vous pouvez facilement adapter ce qui précède pour fonctionner à la fois sur Jessie ou Stretch pour WiFi et Ethernet.
/sys/class/net?
Entrez dans le terminal / la console ifconfig wlan0À la fin de la première ligne devrait se trouver l'adresse matérielle aka MAC.
Voici un exemple de sortie (paramètres régionaux allemands):
pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse b8:27:eb:xx:xx:xx
...
ifconfigsoit une bonne alternative pour l'avenir.
Beaucoup de distros est remplaçaient ifconfigavec ipdonc je déconseille l'utilisation de ifconfig.
Pour afficher l'interface wlan0:
ip link show wlan0
ou
cat /sys/class/net/wlan0/address
ifconfigsera toujours disponible pendant de nombreuses années. Le supprimer permettra d'économiser un maigre 800 Ko, cassant beaucoup d'anciens scripts.
ip link showest probablement plus approprié que ip addr show.
ifconfigpar défaut, Raspbian Stretch semble l'avoir. Je préfère ipplus ifconfig, mais je pense que Bob a raison de dire que linkest probablement plus approprié que addrdans ce contexte. La solution que j'ai choisie, cependant, était de la lire /sys/class/net/wlan0/address- aucune analyse supplémentaire n'est nécessaire. De plus, je l'écris comme cat /sys/class/net/wl*/addressdans une tentative naïve de le faire enregistrer pour les "noms d'interface réseau prévisibles" à venir.
ifconfig wlan0À la fin de la première ligne devrait se trouver l'adresse matérielle aka MAC.