我正在玩scapy(Python模块)。我想构建软件包并通过我的本地网络将它们从一个主机发送到另一个主机。当我像这样构建我的包时,我在目的地主机上没有收到任何东西:
packet = Ether() / IP(dst='192.168.0.6') / TCP(dport=8000)
=> sendp(packet)
。
然而,当我构建它时,它可以正常工作:packet = IP(dst='192.168.0.6') / TCP(dport=8000)
,send(packet)
。
我在wireshark的帮助下捕获目标主机上的包。
为什么Ethernet-Variant不起作用?我的所有电脑都连接了以太网电缆......
感谢您的帮助!
答案 0 :(得分:0)
send()
使用Scapy的路由表(在Scapy启动时从主机的路由表复制),而sendp()
使用提供的接口,或conf.iface
没有指定值。
因此,您应该设置conf.iface = [iface]
([iface]
作为您要使用的界面),或指定sendp([...], iface=[iface])
。