我正在玩 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的帮助下捕获了目标主机上的包。
为什么以太网变体不起作用?我的所有电脑都通过以太网电缆连接...
感谢您的帮助!
最佳答案
send()
使用 Scapy 的路由表(Scapy 启动时从主机的路由表复制),而 sendp()
使用提供的接口(interface),或者 conf.iface
当没有指定值时。
因此,您应该设置 conf.iface = [iface]
([iface]
是您要使用的接口(interface)),或者指定 sendp([ ...], iface=[iface])
.
关于python - 无法通过 LAN 发送以太网包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49243269/