使用telnetlib读取每个命令的输出

时间:2019-04-16 12:53:54

标签: python telnet telnetlib

我正在使用Python的telnetlib来telnet到网络路由器并执行一些命令,我​​想获取这些命令的输出。

tn   =   telnetlib . Telnet ( "x.x.x.x", 23, 600 ) 
tn.expect([b"login as:"], 5)
tn.write(b'admin\r')
tn.expect([b"Password:"], 5)
tn.write(b"abc\r")
tn.write(b"show version\r")
time.sleep(3)
ret1 = tn.read_eager().decode('ascii')
print("Show Version Start \n")
print(repr(ret1))
print("\nShow Version End")
tn.write(b"exit\r")
print(tn.read_all().decode('ascii'))
tn.close()

我只想要显示版本的输出,但是只显示所有输出,有没有办法只获取执行的最后一条命令的输出?

1 个答案:

答案 0 :(得分:1)

有趣的是,我也在做同样的工作,并且已经找到解决方法,请检查此链接https://coderwall.com/p/0uxfba/read-stdout-from-telnet-terminal-in-python

如果在调用getMoreData之前清空your_class.data,则始终会将最后一个命令输出保存到数据列表中,然后可以将其打印出来。

希望有帮助