python - 无法通过 LAN 发送以太网包

标签 python wireshark scapy

我正在玩 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/

相关文章:

python - 如何使用 Scapy 提取 TCP 数据包的 Raw

python - Python2.7 和 Python3.4 的不同 PYTHONPATH

python - 日期时间差异(以小时为单位),不包括周末

python - 如何检查数组中是否可以求和?

linux - 是否可以从 netcat 创建 wireshark/tcpdump?

python - Scapy 中的 prn 参数

python - openCV:如何使用 getPerspectiveTransform

android - 在 Wireshark 上捕获手机流量

file - HTTP 下载如何在 TCP 数据包内分段?

python - scapy 操作系统错误 : [Errno 9] Bad file descriptor