如何从以太网地址获取远程主机的IP地址?

时间:2010-03-20 22:49:42

标签: ip ethernet arp

我正在寻找一些Linux代码来从以太网地址中查找IP地址。我想我必须做一些反向ARP欺骗,但我找不到任何例子......

3 个答案:

答案 0 :(得分:3)

http://compnetworking.about.com/od/networkprotocolsip/f/convertipmacadd.htm

尝试发送IP广播(例如ping 192.168.1.255,如果您的子网为192.168.1.0/24)以填充您的ARP缓存,然后arp -a将其全部吐出。

答案 1 :(得分:2)

对于与之通信的计算机,您可以查看其arp条目。例如,这在/proc/net/arp中以文本格式提供。查找您知道但未与之通信的MAC的IP地址要困难得多。协议方面最接近的匹配是RARP,但几乎没有使用过,所以你不太可能得到回应。

您始终可以扫描本地子网,以确保在arp表中获得完整视图。例如,请参阅fping以获得有效的方法。请注意,主机实际上不需要响应有问题的ping以显示在ARP表中,因此即使存在本地防火墙等,这也很有用。

答案 2 :(得分:0)

看看Thomas Habet的Arping。我没有尝试过,但基本的想法是使用IP标头中的广播目标IP地址将ICMP Ping网络数据包发送到相关的MAC地址。只有具有指定MAC地址的主机才会回复,并且回复将(通常)包含其IP地址。它不会一直有效但对你来说可能还不错。有关限制,请参阅项目自述文件。