2017-07-28 359 views
0

我在玩Libpcap试图发送ping命令,但每当我发送请求时,他们从不回应,没有给出错误,并且它看起来与通过ping实用程序发送的常规ping相同。Libpcap ICMP数据包从来没有回应

左边的数据包通过我的应用通过终端和右侧的ping发送。据我可以告诉数据字段是可选的,所以我不包含它,并且标识符/序列号可以是随机的,因此它们是随机的。

我在这里错过了一些明显的东西吗?

enter image description here

回答

1

我注意到你还没有验证您的IP报头校验和。你确定它确实是正确的吗?如果不是,下一个路由器会默默地丢弃与你所看到的一致的数据包。如果你打开它,Wireshark应该能够验证你的IP头校验和。

+0

我在ICMP + IP数据包ip.ip_sum = ip_checksum(&ip,sizeof(ip));'上的代码中调用校验和函数,但似乎自动设置为验证禁用。即使使用普通ping工具,它似乎也被设置为禁用 – Crizly

+0

再次:打开验证/在wireshark /中查看校验和是否正确。 – Hal

+0

呵呵,我误解了,我想你发现了这个问题,现在出现了错误 – Crizly