首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中发送地址解析协议请求

如何在C++中发送地址解析协议请求
EN

Stack Overflow用户
提问于 2013-11-05 19:20:25
回答 1查看 2.5K关注 0票数 2

我对在Mac上编程是个新手。我希望始终确保我的程序管理的所有网络接口在ARP缓存中都有一个网关的MAC地址。为此,如果我检测到GW的MAC地址丢失,我希望以编程方式向GW发送一个ARP请求。

在Mac上似乎不支持AF_PACKET/PF_PACKET地址族和协议上的原始套接字。在C++中有没有其他方法可以做到这一点?例如,是否有可用于发送ARP请求的API?

EN

回答 1

Stack Overflow用户

发布于 2013-11-10 17:22:25

如果需要确保每台主机都有与默认网关关联的正确ARP条目,则可以设置静态ARP条目。静态ARP条目将永远保留在ARP表中,因此您不需要定期发送ARP请求。

代码语言:javascript
复制
arp -s "IP_GW" "MAC_GW" -i "DEVICE YOU WANT TO SET, E.G: en0"

无论如何,您可以使用C库"libnet“(也可用于Windows和Linux)发送ARP请求。这是一个较低级别的库,您需要在字节级处理数据包及其报头。要创建ARP请求,您必须使用:

代码语言:javascript
复制
libnet_autobuild_arp()
libnet_autobuild_ethernet()

在这里你可以找到一个libnet tutorial

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19787783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档