700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python构造icmp数据包_Python原始套接字未接收ICMP数据包

python构造icmp数据包_Python原始套接字未接收ICMP数据包

时间:2019-03-14 10:12:16

相关推荐

python构造icmp数据包_Python原始套接字未接收ICMP数据包

我尝试在Python中使用原始套接字将UDP包发送到主机,然后获取包的ICMP响应——基本上是重新实现traceroute。在

我已经成功地构造了IP和UDP报头并发送了数据包。我可以在Wireshark上看到。我还看到Wireshark中的ICMP响应告诉我TTL超过了。在

我有以下代码:me = gethostbyname(gethostname())

my_socket = socket(AF_INET, SOCK_RAW)

my_socket.setsockopt(IPPROTO_IP, IP_HDRINCL, 1)

my_socket.bind((me, 0))

hostname = ''

hostip = gethostbyname(hostname)

packet = create_packet(hostname)

send_socket.sendto(packet, (hostip , 0))

然后,在发送数据包后,我调用另一个函数来侦听传入的数据包,其中包括以下代码段:

^{pr2}$

我能够成功地解包IP报头并检查协议,但它总是6或17(TCP或UDP)。即使包含Wireshark的ICMP包中也没有出现它。在

我尝试过将Wireshark中的ICMP包与我的程序可以看到的Wireshark中的其他包进行比较,IP报头几乎完全相同。我不知道怎么了。在

谢谢你的帮助

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。