Python Socket - 测试启用Telnet的设备
我有一堆设备需要写个脚本来检查telnet是否开启。所以我写了下面这个脚本:
import socket
file = open('list', 'r')
file = file.readlines()
list = []
port = 23
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
for i in file:
i=i.replace('\n','')
list.append(i)
for i in host:
try:
s.connect((i, port))
s.shutdown(2)
print (i+' Telnet is enable')
except:
print (i+' Telnet is disable')
问题是,在第一次测试显示telnet开启后,所有设备都显示为关闭。我检查了一下得到的错误,错误信息是:
socket.error: (133, 'Transport endpoint is already connected')
我知道这和关闭第一次会话有关,但我不知道该怎么做。谢谢大家!
1 个回答
0
由于关于将评论标记为答案的功能请求一直没有被接受,我把上面的解决方案复制到这里。
你需要关闭旧的连接,然后创建一个新的连接,也就是说,把 s = socket.socket(... 放在循环里面。– Joachim Isaksson