1

我需要一些可在 Linux 下编译的 C 或 C++ 代码,以便能够获取任意数量的远程主机的 IP 地址列表,并为每个主机获取以太网 MAC 地址。这些主机可能位于同一子网上,也可能位于路由器后面的不同子网上。如果部分或全部远程主机的MAC地址是路由器上接口的地址,则可以。最终,我想将 IP 地址和 MAC 地址交给 FPGA,后者将使用这些信息来格式化并通过以太网将 UDP/IP 数据包发送到主机。显然,FPGA 也会被赋予自己的 MAC 地址和 IP 地址,以便在数据包中填写源 MAC 和源 IP 地址。

是否有一些我可以指出的代码可以创建并向这些远程机器广播 ARP 数据包并接收回 ARP 响应数据包,以便可以提取目标 MAC 地址?

4

2 回答 2

2

您想要做的部分事情需要一些原始套接字编程。

http://mixter.void.ru/rawip.html

linux arp 命令的源代码将提供您需要的其余部分。这是一个链接:

http://www.comp.nus.edu.sg/~cs4236/readings/out/html/arp_8c-source.html

于 2010-03-16T02:29:58.583 回答
1

我建议研究 arping,它的工作有点相同。它需要 IP 和 MAC 并尝试接收附加信息。或者只是 ping 他们。

http://freshmeat.net/projects/arping/

于 2010-03-16T15:18:08.153 回答