Scapy导入错误'socket.gaierror:[Errno 11001] getaddrinfo failed'

时间:2018-03-13 20:29:02

标签: python python-2.7 sockets scapy getaddrinfo

我试图在Windows 10,python 2.7.11上安装Scapy,并坚持这个错误:

>>> from scapy.all import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\tools\python\lib\site-packages\scapy\all.py", line 25, in <module>
    from scapy.route import *
  File "C:\tools\python\lib\site-packages\scapy\route.py", line 182, in <module>
    _betteriface = conf.route.route("0.0.0.0", verbose=0)[0]
  File "C:\tools\python\lib\site-packages\scapy\route.py", line 150, in route
    aa = atol(a)
  File "C:\tools\python\lib\site-packages\scapy\utils.py", line 400, in atol
    except socket.error:
socket.gaierror: [Errno 11001] getaddrinfo failed

这是什么意思?

1 个答案:

答案 0 :(得分:1)

python 2.7 documentation中所述,getaddrinfo()或getnameinfo()函数抛出此错误。
根据堆栈跟踪判断,scapy模块在导入期间尝试初始化套接字并且端口号无效(我们可以看到正在调用的atol函数,它将字符串转换为整数)。
目前尚不清楚真正的问题是什么。但是,您可以尝试以下方法:

  • 确保您拥有正确版本的python和scapy。我建议你从pip安装scapy,也许可以使用virtual environment来运行你的脚本。
  • 你也可以尝试compile scapy from source,或者检查github中的问题部分,看看你的问题是否真的是一个已知的问题。
  • 也许scapy试图初始化一个原始套接字(我不知道为什么会这样,但值得一试),这需要管理员权限。尝试以管理员身份运行脚本。

    希望这会有所帮助