0

我有一堆设备,我必须编写一个脚本才能知道 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')

我知道这与关闭第一个会话有关,但我做不到。提前致谢

4

1 回答 1

0

由于将评论标记为答案的功能请求仍然被拒绝,因此我在此处复制上述解决方案。

您需要关闭旧套接字并创建一个新套接字,即将 s = socket.socket(... 放入循环中。 – Joachim Isaksson

于 2014-06-04T09:51:25.143 回答