使用Python的Telnet

2024-04-23 18:16:17 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是python新手,我正在尝试通过仅主机适配器将telenet连接到我的主机:

我的命令是

  import telnetlib
import time


def call_func():
    time1 = 2
    connect = telnetlib.Telnet('192.168.1.100',23,3)
    connect.write('show version'.encode('ascii'))
    time.sleep(time1)
    print (connect.read_very_eager().decode('ascii'))
    connect.close()


call_func()

但是,我无法读取show version命令的完整输出。有人能解释一下我为什么不能这样做吗?在

输出得到: 'R1>;显示版本'


Tags: import命令timeversiondefshowconnectascii
1条回答
网友
1楼 · 发布于 2024-04-23 18:16:17

您可以阅读telnetlib documentation中的所有read_方法并比较它们的输出。它指出,只有read_until()会给你文本“直到一个给定的字节串”。所有其他的都只返回“所有数据,直到EOF”,“所有可以不阻塞I/O”,“随时可用的数据”等等

也就是说,您应该使用read_until()来确保返回一个完整的字符串。这是唯一一个等待telnet返回整个文本的方法。在

{a2中有一个类似的解释。在

相关问题 更多 >