如何从C程序发送ARP数据包?

时间:2008-09-25 21:58:22

标签: network-programming

我正在使用C语言编写嵌入式Linux系统,我正在寻找Windows中SendARP的等效源代码。有什么指针吗?

3 个答案:

答案 0 :(得分:3)

看看arping。发送arp的快速而肮脏的方法是:


foo = system("/somepath/arping somehost");

但是看看arping来源应该能够给你一个更好的解决方案。

对于全面解决方案,您可以手动构建自己的解决方案,并使用原始套接字或libpcap发送它。


顺便说一句。如果你要做的就是强制发送一个arp(但必然是你的),你可以通过删除你已经为你的主机拥有的任何arp条目来实现。下一次访问该地址将需要发送arp。

例如。 / usr / sbin / arp -d destination_host_ip

答案 1 :(得分:0)

这可能是有意义的:http://cvs.linux-ha.org/viewcvs/viewcvs.cgi/linux-ha/resources/heartbeat/SendArp.in?rev=1.4

这是Bourne Shell脚本中的一个实现。

答案 2 :(得分:0)

我从未见过任何专门针对ARP的内容,但我认为您可以使用libpcap和相应的RFC发送任何类型的数据包。