繁体   English   中英

(Python)socket.gaierror:[Errno 11001] getaddrinfo失败

[英](Python) socket.gaierror: [Errno 11001] getaddrinfo failed

我不确定这段代码有什么问题我一直得到socket.gaierror错误; \\。

import sys
import socket
import random

filename = "whoiservers.txt"

server_name = random.choice(list(open(filename)))

print "connecting to %s..." % server_name

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((server_name, 43))
s.send(sys.argv[1] + "\r\n")
response = ''
while True:
    d = s.recv(4096)
    response += d
    if d == '':
        break
s.close()
print
print response


    s.connect((server_name, 43))
  File "<string>", line 1, in connect
socket.gaierror: [Errno 11001] getaddrinfo failed

更新:

添加server_name = random.choice(list(open(filename)))[:-1]我再也没有得到socket.gaierror但是我得到了:

socket.error:[Errno 10060]连接尝试失败,因为连接的文件在一段时间后没有正确响应,或者由于连接的主机无法响应而建立的连接失败

我认为问题是server_name末尾的换行符。

如果您的文件whoiservers.txt的格式是每行上的一个主机名,那么您需要在主机名末尾删除换行符,然后再将其传递给s.connect()

因此,例如,将开放行更改为:

server_name = random.choice(list(open(filename)))[:-1]

也许您和这些阻止请求的服务器之间有防火墙? 您发布的最后一个错误导致人们相信它根本无法连接到服务器...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM