我正在尝试使用 telnetlib 从 cisco 路由器读取数据
import telnetlib
tn = telnetlib.Telnet(’10.106.218.50’, 17280)
cmd1=”enable”
cmd2=”show run”
#session.write("command".encode('ascii') + b"\r")
tn.write(cmd1.encode('ascii') + b"\r")
tn.write(cmd2.encode('ascii') + b"\r")
#op=tn.read_very_eager()
#op=tn.read_some()
#op=tn.read_until('#')
op=tn.read_all()
print op
我能够成功地写入路由器的控制台 然而,当我尝试从路由器的控制台读取时,系统只是挂起。 当我使用 read_some() 时,我得到了一部分输出。但是 read_all() 只是挂起并且没有给出任何响应 请提出解决方案
最佳答案
read_all()
如果在建立连接时没有指定超时,python 的 telnetlib 模块中的命令将被阻止。
你的调用命令应该是这样的
tn = telnetlib.Telnet('10.106.218.50', 17280, timeout = 1)
您也可以替换您自己的超时值。
关于python-2.7 - telnetlib python read_all() 不工作(挂起),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289641/