如何获取路由器的 MAC 地址?

如何获取路由器的 MAC 地址?

是否有一个 Linux 命令可以让我获取路由器的 MAC 地址?

答案1

不要使用已过时的命令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 

default要查看路由器 IP 地址的 MAC 地址,请使用ip neigh并查找lladdr.e后面带有 IP 地址和 MAC 地址的行

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

如果在列表中找不到某台机器,则需要连接到它,因为它已从列表中删除,因为有一段时间没有使用。因此,只需尝试:

ping -c 3 192.168.11.1

然后再次尝试该ip neigh命令。该选项-c 3将限制ping仅发送三条ICMP ECHO消息,然后结束。如果未设置,它将一直运行,直到您使用 停止程序C-c

答案2

如果你不知道路由器的 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 没有首先显示出来,则 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

答案3

我喜欢单行:

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

arping显示与默认网关 IP 地址关联的 MAC 地址,来自 的输出ip route show match 0/0,由 解析awk

答案4

这不是一个完整的解决方案,但是您可以检查 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

相关内容