所以我有一個像下面這樣的插座:集「下一個標題」字節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