我试图用scapy在IP包中发送IP,但我似乎错过或误解了一些东西。下面是我的尝试:
from scapy.all import *
payload = "HelloWorld"
inner = IP(dst="192.168.1.2")
inner.add_payload(payload)
outer = IP(dst="192.168.1.2")
send(outer/inner)
我用wireshark在目的地查看数据包,它显示数据包是畸形的:
Expert Info (Error/Protocol): IPv6 Hop-by-Hop extension header must出现在IPv6报头
之后
目的地然后发送一个ICMP数据包,类型3(目的地不可达)和代码2(协议不可达)。
我试过在外部和内部数据包上设置几个协议(协议4 IPv4封装感觉正确),但到目前为止,它们都发回一个"协议不可达";ICMP数据包。
如果有区别,我的意图是将内部数据包发送到与外部数据包不同的目的地。我只是觉得我应该举一个最简单的例子来开始。一旦我弄清楚为什么我得到一个协议不可达的消息,我将改变内部数据包的目标IP。
建议吗?
如果你想在IP包中发送IP(外部IP头,内部IP头,IP负载),例如:
from scapy.all import *
payload = "TEST"
send(IP(dst="192.168.1.2")/IP(dst="192.168.1.2")/UDP(dport=4444)/payload)