当您仅有某个项目的 MAC 地址时,有没有办法获取 IP 地址?
答案1
如果您连接到同一个广播域,您可以执行arp -a
此操作,这将显示 ARP 缓存。从这里您可以将 MAC 与 IP 进行匹配。
答案2
如果目标设备和您的 *nix 盒位于同一个 IP 子网(我具体指的是真正的 IP 子网,而不是同一个交换机,或同一个 VLAN,甚至同一个广播域,或任何其他有时被外行人称为“子网”的东西),和如果它们已经有机会互相通信,那么目标设备的 IP -> MAC 映射可能已经存在于您的 Unix 机器的 ARP 表中。您可以执行以下命令arp -a
查看该表。
如果它们在同一个子网上,但尚未相互通信,通常可以通过 ping 所有主机多播地址(224.0.0.1)或子网广播地址来强制通信。
如果您不在同一个 IP 子网上,但在同一个多播/广播域上,您可能能够通过运行嗅探器并观察来自目标 MAC 地址的多播或广播来获取其 IP 地址:
sudo tcpdump -nei $INTERFACE ether host $MAC
...其中 $INTERFACE 是您想要监听的接口(可能是“en0”或“eth0”或类似的),$MAC 是您要查找的 MAC 地址。
要触发目标设备在您使用嗅探器进行观察时发送多播或广播,您可以执行诸如 ping 上述地址、关闭目标设备的电源循环、从交换机上拔下设备(或关闭交换机的电源循环)等操作。大多数设备更有可能在启动时或在其网络链接断开一段时间后恢复时发送广播和多播。
答案3
是的,它被称为 arp(地址解析协议)。如果您使用 TCP Dump 或 Wireshark 等程序,您会看到路由器/网络设备会不时询问“谁是 [IP]”之类的问题,然后该人会用他们的 mac 地址进行响应。
如果您使用的是 Windows,您只需打开命令行并输入“arp -a”即可列出您拥有的 ARP 记录。