发送 Ping 请求
使用 WinpCap 并尝试生成我自己的 ping 请求。
在两台机器上,我都看到了 ping 请求,我生成的请求与 Windows 生成的请求之间的唯一区别是我的校验和是 0(被告知没关系),而标识的是 100,而不是像 Windows 使用的那样不断增加的值。 (我每次尝试发送 ping 请求时都会增加)。
我应该将十六进制转储粘贴到这里吗? :P
编辑: 我想我的问题是找出可能导致 Windows 不响应 Wireshark 中显示为有效的 ping 请求的原因。
Using WinpCap and trying to generate my own ping requests.
On both machines I see the ping request and the only differences between the ones I've generated the ones Windows has generated is my checksum is 0 (been told that's ok) and the identified is 100 instead of an ever increasing value like Windows uses. (I increase each time I try to send a ping request).
Should I paste the hex dump here? :P
EDIT:
I guess my question here is to find out what could cause Windows to NOT respond to ping requests that show up as valid in Wireshark.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,您应该将十六进制转储粘贴到此处。
这可能是因为校验和错误。与 UDP 不同,我相信 ICMP (ping) 校验和不是可选的并且应该是正确的。这也是我从 RFC 792 得到的。
如果您想将 WinPcap 与 .NET 一起使用,您可以使用 Pcap.Net,它允许您创建和只需编写很少的代码行即可发送任何 ICMP 数据包。
Yes, you should probably paste the hex dump here.
It could be the fact that the checksum is wrong. Unlike UDP, I believe ICMP (ping) checksum is not optional and should be correct. This is also what I got from RFC 792.
If you want to use WinPcap with .NET, you can use Pcap.Net, which will allow you to create and send any ICMP packet by writing very few lines of code.