使用原始套接字创建 IP、IGMP 数据包时,如何在这些数据包中填充十六进制值?
我有一个IP数据包,其中包括IGMP数据包。我想使用原始套接字编程来模拟这一点。 IP数据包的校验和字段是e1c9,现在如何在编程中分配这个值。我试过 iphdr->iph_chksum="e1c9";
还 iphdr->iph_chksum=57801;
上面的事情对吗?
它不能正常工作,请告诉我具体的方法?
I have one IP packet, which includes IGMP packet. I want to simulate this using RAW socket programming.
the checksum field of IP packet is e1c9, now how to assign this value in programming. I tried
iphdr->iph_chksum="e1c9";
also
iphdr->iph_chksum=57801;
is the above thing right?
it is not working properly, please tell me the exact way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在本例中,十六进制值的 C 语法为
0xe1c9
。但是,您应该确保使用正确的字节顺序,您可能需要通过 htons 传递值The C syntax for hexadecimal values is
0xe1c9
in this case. you should however ensure that you are using the correct byte order, you will probably need to pass the value throughhtons