我需要一些可在Linux下编译的C或C ++代码,以便能够获取某些任意数量的远程主机机器的IP地址列表,并为每个机器获取以太网MAC地址。这些主机可能位于同一子网上,也可能位于路由器后面的不同子网上。如果某些或所有远程主机的MAC地址是路由器上接口的地址,则可以。最后,我想将IP地址和MAC地址交给FPGA,FPGA将使用这些信息格式化并通过以太网将UDP / IP数据包发送到主机。显然,FPGA还将获得自己的MAC地址和IP地址,以填充数据包中的源MAC和源IP地址。
是否有一些我可以指向的代码可以创建和广播这些远程计算机的ARP数据包并接收ARP响应数据包,以便可以提取目标MAC地址?
答案 0 :(得分:1)
您想要做的部分内容需要一些原始套接字编程。
http://mixter.void.ru/rawip.html
linux arp命令的源代码将提供您需要的其余内容。这是一个链接:
http://www.comp.nus.edu.sg/~cs4236/readings/out/html/arp_8c-source.html
答案 1 :(得分:1)
我建议调查一下做同样工作的arping。它需要IP和MAC并尝试接收其他信息。或者只是ping他们。