Существует ли команда Linux, которая позволяет мне получить MAC-адрес моего маршрутизатора?
Мне нравятся остроты:
arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')
arping
шоу MAC, связанный с IP-адресом шлюза по умолчанию от вывода ip route show match 0/0
, проанализированный awk
.
Не используйте команды 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
Если Вы не знаете 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
.
Не полное решение, но Вы проверяете 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
Вот острота, которая работает в dash
, bash
и zsh
:
ip neigh|grep "$(ip -4 route list 0/0|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
ip -4 route list 0/0
возвраты что-то как:
значение по умолчанию через 192.168.0.1 dev eth1 первичная статическая метрика 100
мы получаем 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, ДОСТИЖИМЫЙ
CA:FE:BA:BE:BE:AF
Это - улучшенная версия ответа Горя. Для 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]'