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?

0
ketan khandagale 20 avril 2017 à 10:07

3 réponses

Meilleure réponse

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

1
kstromeiraos 20 avril 2017 à 07:15

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 utiliser ip comme ceci:

ip add | grep link/ether | awk '{print $2}'

  • Pour toutes les interfaces, vous pouvez simplement: cat /sys/class/net/*/address
1
Yahya Yahyaoui 20 avril 2017 à 07:35

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)

0
danglingpointer 20 avril 2017 à 07:20