是否有一个 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