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

标签 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

这是什么意思?

最佳答案

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

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

    希望这会有所帮助
  • 关于python - Scapy 导入错误 'socket.gaierror: [Errno 11001] getaddrinfo failed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49265329/

    相关文章:

    python - 为什么在 Python 中不允许从 ZIP 文件导入 `*.so` 文件?

    python - 为什么具有复杂无穷大的 NumPy 操作会导致有趣的结果?

    python - 如何使用 s3 对象名称作为 MRJob 映射器的输入,而不是 s3 对象本身?

    python - 导入错误 : No module named package

    python - 带 tensorflow 的单出神经网络

    python - 带参数的多重继承

    带有-1作为第三个参数的python双冒号

    sockets - 如何通过 net.socket 或 http.request 创建 HTTP-1.0 请求?

    linux-kernel - SocketCAN 读取套接字调用正在阻塞

    c++ - 基于 epoll 的服务器失败(相互认证)