J'essaie d'obtenir l'adresse mac_address pour l'interface qui est jusqu'à présent, je suis capable de l'obtenir
ifconfig | grep HWaddr
eth0 Link encap:Ethernet HWaddr 98:BE:94:24:41:62
eth1 Link encap:Ethernet HWaddr 98:BE:94:24:41:63
eth2 Link encap:Ethernet HWaddr 98:BE:94:24:41:64
eth3 Link encap:Ethernet HWaddr 98:BE:94:24:41:65
usb0 Link encap:Ethernet HWaddr 9A:BE:94:24:41:61
Existe-t-il une commande en une ligne pour obtenir l'adresse mac_address pour le lien d'interface qui est en place?
3 réponses
cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/address
ip route show default | awk '/default/ {print $5}'
imprime le nom de votre interface par défaut. Ensuite, vous obtenez votre Mac de /sys/class/net/IFACE_NAME/address
Vous pouvez essayer ces solutions:
- Pour les interfaces qui sont Up Use
ifconfig
avec une expression régulière pour MAC modèle:
ifconfig | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
- Certains systèmes d'exploitation comme CentOS ne fournissent pas
ifconfig
, vous pouvez donc utiliserip
comme ceci:
ip add | grep link/ether | awk '{print $2}'
- Pour toutes les interfaces, vous pouvez simplement:
cat /sys/class/net/*/address
Vous pouvez essayer ceci pour obtenir l'adresse mac de votre interface. Si vous vérifiez le nom de l'interface et l'adresse MAC sont les premier et dernier champs sur une ligne sans espace au début.
ifconfig -a |
awk '/^[a-z]/ { iface=$1; mac=$NF; next }
/inet addr:/ { print iface, mac }'
Ou très simpliste, vous pouvez utiliser ceci
cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/address
Cela renvoie en fait: bc: f8: 6b: bd: 55: 00 (exemple de macadresse de l'eth0)
De nouvelles questions
linux
LES QUESTIONS LINUX DOIVENT ÊTRE LIÉES À LA PROGRAMMATION. Utilisez cette balise uniquement si votre question concerne la programmation à l'aide d'API Linux ou un comportement spécifique à Linux, et pas uniquement parce que vous exécutez votre code sous Linux. Si vous avez besoin d'une prise en charge Linux, vous pouvez essayer https://unix.stackexchange.com ou le site Stack Exchange de la distribution Linux spécifique comme https://askubuntu.com ou https://elementaryos.stackexchange.com/