我不确定这段代码有什么问题,我不断收到 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
Update:
添加后server_name = random.choice(list(open(filename)))[:-1]
我不再得到那个 socket.gaierror 但我得到:
socket.error: [Errno 10060] 连接尝试失败,因为连接的 pa
rty在一段时间后没有正确响应,或者建立了连接f
由于连接的主机未能响应而失败
我认为问题是末尾的换行符server_name
.
如果您的文件格式whoiservers.txt
每一行都有一个主机名,那么您需要在将主机名传递给之前删除主机名末尾的换行符s.connect()
例如,将开放行更改为:
server_name = random.choice(list(open(filename)))[:-1]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)