如何从C程序发送ARP数据包?
时间:2020-03-06 14:45:11 来源:igfitidea点击:
我正在使用C语言在嵌入式Linux系统上工作,正在寻找Windows中SendARP等效文件的源代码。有指针吗?
解决方案
这可能很有趣:http://cvs.linux-ha.org/viewcvs/viewcvs.cgi/linux-ha/resources/heartbeat/SendArp.in?rev=1.4
它是Bourne Shell脚本中的一种体现。
我从未见过专门针对ARP的任何内容,但我认为我们可以使用libpcap和适当的RFC发送想要的任何类型的数据包。
看一看arping。发送arp的快速而肮脏的方法是:
foo = system("/somepath/arping somehost");
但是浏览Arping来源应该可以为我们提供更好的解决方案。
但是对于全面解决方案,我们可以手工构造自己的解决方案,并使用原始套接字或者libpcap发送它。
顺便提一句。如果我们只是想强制发送arp(但必须来自我们),则可以通过删除主机上已有的任何arp条目来实现。对该地址的下一次访问将需要发送arp。
例如。 / usr / sbin / arp -d destination_host_ip