And*_*ers 13
不要使用过时的命令ifconfig
(8)、arp
(8) 或route
(8)。使用替换它们的新命令并且可以执行更多操作,ip
(8)。
用ip route list
看哪个default
路由器你的机器有。那应该是一条以default
(or 0.0.0.0
)开头的行,然后是路由器的 IP 地址。如果您使用 IPv6,只需添加-6
开关ip -6 route list
.
default via 192.168.11.1 dev eth0 proto static
Run Code Online (Sandbox Code Playgroud)
要查看default
路由器 IP 地址的 MAC 地址,请使用ip neigh
并查找lladdr
.e之后包含 IP 地址和 MAC 地址的行
192.168.11.1 dev eth0 lladdr 1c:af:f7:XX:XX:XX REACHABLE
Run Code Online (Sandbox Code Playgroud)
如果在列表中没有找到机器,则需要连接到它,因为它已经从列表中删除了一段时间不使用。所以试试吧:
ping -c 3 192.168.11.1
Run Code Online (Sandbox Code Playgroud)
然后ip neigh
再次尝试该命令。该选项-c 3
将限制ping
为仅发送三个ICMP ECHO
消息然后结束。如果未设置,它将一直运行,直到您使用C-c
.
如果您不知道路由器的 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
Run Code Online (Sandbox Code Playgroud)
请注意带有标志的行UG
。该Gateway
行列中的地址就是您要查找的地址。然后按照2707974 的建议使用arp -n
(如果 IP 一开始没有出现就 ping 一下),然后找到匹配的行:
$ 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
Run Code Online (Sandbox Code Playgroud)
在这里,您的路由器的 MAC 将是00:11:22:33:44:55
.
我喜欢单线:
arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')
Run Code Online (Sandbox Code Playgroud)
arping
显示与来自 的输出的默认网关 IP 地址关联的 MAC ip route show match 0/0
,由 解析awk
。
这是适用于dash
,bash
和的单行代码zsh
:
ip neigh|grep "$(ip -4 route list 0/0|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
Run Code Online (Sandbox Code Playgroud)
ip -4 route list 0/0
返回类似以下内容:默认通过 192.168.0.1 dev eth1 proto static metric 100
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
归档时间: |
|
查看次数: |
37700 次 |
最近记录: |