web-dev-qa-db-fra.com

Comment obtenir l'adresse MAC de mon routeur?

Existe-t-il une commande Linux qui me permet d’obtenir l’adresse MAC de mon routeur?

10
user4650183

J'aime les one-liners:

arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')

arping indique le code MAC associé à l'adresse IP de passerelle par défaut à partir du résultat de ip route show match 0/0, analysé par awk.

4
Eric Carvalho

N'utilisez pas les commandes obsolètes ifconfig (8), arp (8) ou route (8). Utilisez la nouvelle commande qui les remplace et pouvez en faire davantage, ip (8).

Utilisez ip route list pour voir le routeur default de votre ordinateur. Cela devrait être une ligne qui commence par default (ou 0.0.0.0) et l’adresse IP du routeur après. Si vous utilisez IPv6, ajoutez simplement le commutateur -6, ip -6 route list.

default via 192.168.11.1 dev eth0  proto static 

Pour voir l'adresse MAC de l'adresse IP du routeur default, utilisez ip neigh et recherchez la ligne avec l'adresse IP et l'adresse MAC après le lladdr.

192.168.11.1 dev eth0 lladdr 1c:af:f7:XX:XX:XX REACHABLE
8
Anders

Si vous ne connaissez pas l'adresse IP de votre routeur, c'est probablement votre passerelle que vous pouvez obtenir à partir de la commande routename__ :

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Notez la ligne avec les drapeaux UGname__. Vous cherchez l'adresse dans la colonne Gatewayde cette ligne. Suivez ensuite suggestion de 2707974 avec arp -n (envoyez une requête ping à l'adresse IP si elle ne s'affiche pas au début) et recherchez la ligne correspondante:

$ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.1              ether   00:11:22:33:44:55   C                     eth0
192.168.0.2              ether   66:77:88:99:aa:bb   C                     eth0

Ici, le MAC de votre routeur serait 00:11:22:33:44:55.

4
glibdud

Voici une ligne qui fonctionne dans dashname__, bashet zshname__:

ip neigh|grep "$(ip -4 route list 0/0|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
  1. ip -4 route list 0/0 renvoie quelque chose comme:

    valeur par défaut via 192.168.0.1 dev eth1 métrique statique statique 100

  2. nous obtenons l'adresse IP de cette ligne en tant que troisième champ avec cutet la ligne grep contenant cette adresse IP et l'espace immédiatement après à partir de la sortie du voisinage réseau. (un espace est nécessaire pour éviter la correspondance de 192.168.0.1 avec 192.168.0.10), la ligne correspondante serait quelque chose comme:

    192.168.0.1 dev eth1 lladdr ca: fe: ba: be: be: af ATTEINDRE

  3. Maintenant nous obtenons le cinquième champ et le mettons en majuscule:

    CA: FE: BA: BE: BE: AF

3
Grief

Ce n'est pas une solution complète, mais vous vérifiez arp -n.

ddd@mmm ~ $ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
xxx.xxx.xxx.xxx          ether   00:e0:1e:b4:12:42   C                     eth0
yyy.yyy.yyy.yyy          ether   00:14:78:52:28:d2   C                     wlan0
2
2707974

Ceci est une version améliorée de la réponse de Grief. Il est possible que ip -4 route list 0/0 renvoie plus d'une ligne (IP), auquel cas la ligne complète ne fonctionne pas. La version modifiée suivante utilise donc uniquement la première ligne renvoyée par ip -4 liste de routes 0/0.

ip neigh|grep "$(ip -4 route list 0/0|head -1|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
1
Schtibb