Python scapy OSError:[Errno 9]错误的文件描述符

Python scapy OSError:[Errno 9]错误的文件描述符,python,python-2.7,scapy,Python,Python 2.7,Scapy,我正在windows xp中使用python 2.7和scapy-2.2.0。 我正在尝试dns欺骗,它在python中运行良好。但是当我修改到.exe并执行它时,我得到了这个错误 Traceback (most recent call last): File "dns_spoof.py", line 17, in <module> File "scapy\arch\windows\__init__.pyc", line 523, in sniff File "dns_spoof.p

我正在windows xp中使用python 2.7和scapy-2.2.0。 我正在尝试dns欺骗,它在python中运行良好。但是当我修改到.exe并执行它时,我得到了这个错误

Traceback (most recent call last):
File "dns_spoof.py", line 17, in <module>
File "scapy\arch\windows\__init__.pyc", line 523, in sniff
File "dns_spoof.py", line 15, in dns_spoof
File "scapy\sendrecv.pyc", line 251, in send
File "scapy\sendrecv.pyc", line 237, in __gen_send
OSError: [Errno 9] Bad file descriptor

看起来使用了错误的文件描述符(句柄)。例如,作为标准件(管道)打开的东西用作插座

若我理解正确的话,同一个程序可以从源代码运行,但在被编译成exe时失败。我说得对吗

如果您在linux上运行它,您将使用
strace
来确定是哪个


windows上的等效工具有
进程监视器
Logger.exe

看起来使用了错误的文件描述符(句柄)。例如,作为标准件(管道)打开的东西用作插座

若我理解正确的话,同一个程序可以从源代码运行,但在被编译成exe时失败。我说得对吗

如果您在linux上运行它,您将使用
strace
来确定是哪个


windows上的等效工具是
Process Monitor
Logger.exe
我在尝试
send(IP(dst=“1.2.3.4”)/ICMP()
时遇到了相同的错误,我在github上发现我的问题是在windows上使用的是IDLE而不是命令提示符/Powershell。 这是Powershell中的输出:

>>> send(IP(dst="1.2.3.4")/ICMP())
.
Sent 1 packets.

也许这不是OP遇到的问题,但这是Google上的第一个线程,因此它可能会帮助别人。

我在尝试发送(IP(dst=“1.2.3.4”)/ICMP()时遇到了相同的错误,我在github上发现我的问题是我在windows上使用的是IDLE而不是命令提示符/Powershell。 这是Powershell中的输出:

>>> send(IP(dst="1.2.3.4")/ICMP())
.
Sent 1 packets.

也许这不是OP遇到的问题,但这是Google上的第一个线程,所以它可能会帮助别人。

谢谢,我解决了它。这是源代码中的字符问题(“\”),谢谢,我解决了。这是源代码中的字符问题(“\”)。请将您的scapy版本更新到2.4.0或GitHub版本,它已修复将您的scapy版本更新到2.4.0或GitHub版本,它是Fixeddle是我的原因,TKS:DIDLE是我的原因,TKS:D