3

我正在寻找一些 Linux 代码来从以太网地址中找到 IP 地址。我想我必须做一些反向 A​​RP 技巧,但我没有找到任何例子......

4

3 回答 3

3

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

尝试发送一个 IP 广播(例如ping 192.168.1.255,如果您的子网是192.168.1.0/24)来启动您的 ARP 缓存,然后arp -a将其全部吐出。

于 2010-03-20T23:09:20.170 回答
2

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

您可以随时扫描您的本地子网,以确保在您的 arp 表中获得完整的视图。参见例如fping一个有效的方法来做到这一点。请注意,主机实际上不需要响应相关 ping 来出现在 ARP 表中,因此即使在存在本地防火墙等情况下这也很有用。

于 2010-03-20T23:15:55.943 回答
0

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

于 2018-04-04T10:00:05.217 回答