Как получить MAC-адрес моего маршрутизатора?

Существует ли команда Linux, которая позволяет мне получить MAC-адрес моего маршрутизатора?

10
задан 5 April 2015 в 01:46

6 ответов

Мне нравятся остроты:

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

arping шоу MAC, связанный с IP-адресом шлюза по умолчанию от вывода ip route show match 0/0, проанализированный awk.

4
ответ дан 5 April 2015 в 01:46

Не используйте команды obsoleted ifconfig (8), arp (8) или route (8). Используйте новую команду, которые заменяют их и могут сделать больше, ip (8).

Использование ip route list для наблюдения, который default маршрутизатор машина имеют. Это должно быть строкой, которая запускается с default (или 0.0.0.0), и имейте IP-адрес к маршрутизатору после. При использовании IPv6 просто добавьте эти -6 переключатель, ip -6 route list.

default via 192.168.11.1 dev eth0  proto static 

Для наблюдения MAC-адреса эти default IP-адрес маршрутизаторов используйте ip neigh и ищите строку с IP-адресом и MAC-адресом после lladdr.

192.168.11.1 dev eth0 lladdr 1c:af:f7:XX:XX:XX REACHABLE
8
ответ дан 5 April 2015 в 01:46

Если Вы не знаете IP своего маршрутизатора, это наиболее вероятно Ваш шлюз, который можно получить от route команда :

$ 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

Примечание строка с флагами UG. Адрес в Gateway столбец той строки - то, что Вы ищете. Тогда следуйте 2707974's предложение с arp -n (проверьте с помощью ping-запросов IP, если это не обнаруживается сначала), и найдите согласующий отрезок длинной линии:

$ 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

Здесь, MAC Вашего маршрутизатора был бы 00:11:22:33:44:55.

4
ответ дан 5 April 2015 в 01:46

Не полное решение, но Вы проверяете 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
ответ дан 5 April 2015 в 01:46

Вот острота, которая работает в dash, bash и zsh:

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 возвраты что-то как:

    значение по умолчанию через 192.168.0.1 dev eth1 первичная статическая метрика 100

  2. мы получаем IP от той строки как третье поле с cut и grep строки, содержащей тот IP и непосредственное пространство после него от вывода сетевого окружения. (пространство требуется, чтобы не соответствовать 192.168.0.1 192.168.0.10), подобранная строка была бы чем-то как:

    192.168.0.1 dev eth1 lladdr ca:fe:ba:be:be:af, ДОСТИЖИМЫЙ

  3. Теперь мы getfifth поле и, делают это верхним регистром:

    CA:FE:BA:BE:BE:AF

3
ответ дан 5 April 2015 в 01:46

Это - улучшенная версия ответа Горя. Для IP-4 списка маршрутов 0/0 возможно возвратить больше чем одну строку (IP), в этом случае полный один лайнер не работает. Таким образом, следующая измененная версия только использует первую строку что IP-4 возврата списка маршрутов 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
ответ дан 5 April 2015 в 01:46

Другие вопросы по тегам:

Похожие вопросы: