Comment trouver l'adresse MAC de mon interface Wi-Fi?

10

Je veux déterminer l'adresse MAC de mon interface Wi-Fi sur un Raspberry Pi ZW exécutant Raspbian Lite.

Existe-t-il une commande que je peux exécuter pour me le dire? Y a-t-il un appareil dans l' /procarborescence qui le révélera?

Bex
la source
1
Entrez dans le terminal ifconfig wlan0À la fin de la première ligne devrait se trouver l'adresse matérielle aka MAC.
LotPings
2
@LotPings Vous pourriez en faire une réponse!
joan

Réponses:

9

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.

Milliways
la source
Très bonne réponse. Je vous remercie! Raspbian Stretch utilise-t-il des noms d'interface réseau prévisibles? Affectent-ils la dénomination de la structure sous /sys/class/net?
Bex
1
@Bex Cela dépend; une nouvelle installation utilise des noms d'interface réseau prévisibles par défaut, je ne connais pas les mises à niveau. Il est simple de restaurer un ancien comportement, voir Comment configurer le réseau / WiFi / IP statique pour plus de détails. Quel que soit le nom sélectionné par le processus d'énumération matérielle, il doit être affiché. Il existe plusieurs méthodes pour modifier ce processus.
Milliways
10

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
...
LotPings
la source
J'ai voté en faveur de cette réponse - mais je ne pense pas que ce ifconfigsoit une bonne alternative pour l'avenir.
Bex
1
D'accord, heureusement, il existe deux alternatives.
LotPings
7

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

Réf: https://www.linux.com/learn/replacing-ifconfig-ip

MatsK
la source
Je suis quasiment sûr qu'il ifconfigsera toujours disponible pendant de nombreuses années. Le supprimer permettra d'économiser un maigre 800 Ko, cassant beaucoup d'anciens scripts.
Dmitry Grigoryev
Le problème est que cette personne voudrait un salaire.
Dmitry Grigoryev
1
Il est triste de continuer à utiliser une commande obsolète dans les nouvelles implémentations. J'ai vu cela dans des situations liées au travail, et c'est comme pousser le problème devant vous, et à un moment donné, il deviendra grand! Commencez à vous en occuper à la place!
MatsK
2
Dans ce cas, ip link showest probablement plus approprié que ip addr show.
Bob
1
Dans mon système de bureau, je lance Debian Stretch, qui ne semble plus avoir 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.
Bex