linux通过原始套接字直接发送arp请求报文,linux并不能学习到arp表项

文章讲述了在尝试通过代码使用原始套接字发送ARP请求来更新Linux系统的ARP表项未成功,而通过分析ping命令源码发现,ping实际上是直接发送ICMP报文,当系统检测到缺少ARP信息时会自动发送ARP请求,从而更新ARP表项。
摘要由CSDN通过智能技术生成

问题:由于我这边需要让linux系统学习到arp表项,所以想着通过代码直接发送arp请求(利用原始套接字),其他设备回复arp报文之后,我以为linux就会记录到arp表项,现象是arp表项并没有;

解决方式:当时理解不通,于是想着ping命令可以直接学习到,所以查看ping命令的源码,发现ping的时候并不是先发送arp请求然后再发送icmp请求这样,在代码中并不需要这样一套机制来做这个事情;而是通过代码直接发送icmp报文,发送icmp报文如果发现没有arp信息的时候系统会自己发送arp请求,通过这样的方式linux系统才能学到arp表项也就是arp -a才有ping的表项;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值