Как получить MAC-адрес моего маршрутизатора?
Есть ли команда Linux, которая позволяет мне получить MAC-адрес моего маршрутизатора?
6 ответов
Мне нравятся однострочники:
arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')
arping показывает MAC, связанный с IP-адресом шлюза по умолчанию с выхода ip route show match 0/0проанализировано awk,
Не используйте устаревшие команды 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 с arp -n (пингуйте 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,
Вот один вкладыш, который работает в 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]'
Это не полное решение, но вы проверяете 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