【问题标题】:How do I send an ARP packet from a C program?如何从 C 程序发送 ARP 数据包?
【发布时间】:2008-09-25 21:58:21
【问题描述】:

我正在使用 C 语言开发嵌入式 linux 系统,我正在寻找 Windows 中 SendARP 等价物的源代码。有什么指点吗?

【问题讨论】:

    标签: network-programming


    【解决方案1】:

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

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

    但通过 arping 源查看应该能够为您提供更好的解决方案。

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


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

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

    【讨论】:

      【解决方案2】:

      这可能会引起您的兴趣:http://cvs.linux-ha.org/viewcvs/viewcvs.cgi/linux-ha/resources/heartbeat/SendArp.in?rev=1.4

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-11-15
          • 2012-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-03
          • 2021-10-10
          • 1970-01-01
          • 2012-12-16
          相关资源
          最近更新 更多