当我使用arp -a
命令时,我的两个 Apple 路由器(Extreme 和 Express)返回的结果很奇怪,不像我的其他结果。IP 地址不像其他结果那样是 LAN IP 地址,MAC 地址显示“(不完整)”。以下是输出:
MBP:~ 用户$ arp -a
airport-express.local(169.xxx.xx.xxx)位于(不完整)在 en1 [以太网]
airport-extreme.local(169.xxx.xxx.xx)位于(不完整)在 en1 [以太网]
?(189.xx.xx.xx)位于 en1 ifscope [以太网] 上的 MAC_ADDR
?(189.xx.xx.xx)位于 en1 ifscope [以太网] 上的
MAC_ADDR?(189.xx.xx.xx)位于 en1 ifscope [以太网] 上的 MAC_ADDR
?
(189.xx.xx.xx)位于 en1 ifscope [以太网] 上的 MAC_ADDR
?(189.xx.xx.xx)位于 en1 ifscope [以太网] 上的 MAC_ADDR
? (189.xx.xx.xx)位于 en1 ifscope [以太网] 上的 MAC_ADDR
路由器如何返回不同的 IP 地址?有没有办法在arp
命令中指定所需的 IP?
(注意:实际的调制解调器列在正常的 LAN IP 地址中。并且在查看 Apple 路由器 IP 地址时,、ping
或traceroute
只返回“主机已关闭”。)netstat
答案1
这 169 个地址实际上可能是 169.254.xx 地址,这使它们成为 IPv4 链路本地地址,当设备尚未获得或无法通过 DHCP 获得 IP 地址租约时,这些地址会分配给自己。可能是您的计算机在 AP 重新启动时看到了它们,并尝试通过它们的链路本地地址联系它们,但没有收到响应,可能是因为这些设备当时已经通过 DHCP 获得了 IP 地址租约,因此当时已经放弃了它们的链路本地地址。
看看你的 Apple 设备通过 Bonjour 宣传的地址可能会很有趣:
dns-sd -G v4v6 airport-express.local
^C
dns-sd -G v4v6 airport-extreme.local
^C
(在它给出您需要的信息后,您必须按 Control-C 退出dns-sd
命令,否则它会一直坐在那里监视并报告该信息的任何变化。)
有可能这两台设备也都在您能够成功解析 MAC 地址的 189.xxx 主机列表中。
如果 Apple 设备仍通过 Bonjour 报告它们拥有 169.[254].xx 地址,那么 ARP 可能出了其他问题。也许这些设备中的网络代码忘记告诉 Bonjour 它们不再拥有 169.254.xx 地址。