【问题标题】:socket.gaierror: [Errno 11003] getaddrinfo failedsocket.gaierror: [Errno 11003] getaddrinfo 失败
【发布时间】:2017-10-27 05:49:58
【问题描述】:
 if data.find('!scan') != -1:
 nick = data.split('!')[ 0 ].replace(':','')
 targetip = socket.gethostbyname(str(arg))
 sck.send('PRIVMSG ' + chan + " :" ' scanning host' + targetip + '\r\n')
 for i in range(20, 1025):
     s = socket(AF_INET, SOCK_STREAM)
     result = s.connect_ex((targetip, i))
     if (result == 0) :
          s.send('PRIVMSG ' + chan + " :" 'port %d: OPEN' % (i,) + '\r\n')
     s.close()

我收到此错误:

    targetip = socket.gethostbyname(str(arg))
socket.gaierror: [Errno 11003] getaddrinfo failed

【问题讨论】:

  • 您能否更具体地说明您的问题并提供一些额外的信息? arg 中有什么?您确定您可以访问您的 DNS 服务器吗?到目前为止,您做了什么来尝试解决这个问题?
  • @Robert S. Barnes arg 是用户在 !scan.. 之后给出的参数。例如:!scan IP
  • arg 的值是多少?您的解析器设置正确吗?

标签: python sockets irc


【解决方案1】:

在 Windows 上,socket.gethostbyname() 调用 getaddrinfo() Winsock API 调用,errno 11003 - WSANO_RECOVERY 可能是由于未设置 SYSTEMROOT 环境变量造成的。

在调用socket.gethostbyname之前检查os.environ是否包含SYSTEMROOT,例如:

import os
assert 'SYSTEMROOT' in os.environ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多