所以我有一个像下面这样的插座:集“下一个标题”字节V6蟒蛇插座
sock = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.getprotobyname("icmp"))
,当我发出每RFC4443正确构造ICMP6 ECHO REQUEST与因为数据包格式错误,显然是因为IPv6头中的'next header'字节被设置为每个RFC(#for ICMP)为1,所以类型128和代码0(也是有效的校验和)数据包被目标堆栈丢弃。
两件事情:1。 我知道socket.getprotobyname( “ICMP”),使插座ICMP兼容IPv4(?右)... 2. Wireshark的读取数据包作为IPv6的,但协议为ICMP不ICMPv6报...
设置套接字使用protocolbyname(“icmpv6”)(这是无效的,显然,除非有人知道正确的字符串...我试过“icmp6”“icmpv6”,但可能有一些尝试用我可以做的下划线)。
或改变“下一个首部”字节之前,我将数据包发送到58
不得已构建手包。
任何人有想法?很明显,我不是Python中最有经验的人。
嘿,谢谢,你是对的,我当然是短视的。非常感激。 – jeffery
+1,q和a。这也帮助了我,因为我一直在寻找确切的icmpv6字符串名称。如果OP解决了他的问题,OP应该接受答案。 – fayyazkl