我正在尝试自动化一个过程,在这个过程中,我将将telnet发送到RouterA,而从该RouterA,我将再次将telnet发送到RouterB。我有到RouterA的telnet代码,它的工作非常好,但我不能从RouterA到RouterB。会议变得毫无反应。我做错了什么。有人能指点我吗?
Below is my code:
import os
import telnetlib
import re
def telNetCall():
host = "15.xx.xx.xx"
user = "admin"
password = "password"
enable_password = "enable_password"
telnet = telnetlib.Telnet(host)
telnet.read_until('Username: ', 3)
telnet.write(user + '\r')
telnet.read_until('Password: ', 3)
telnet.write(password + '\r')
telnet.write('enable' + '\r\n')
telnet.write(enable_password + '\r\n')
telnet.read_until("#")
telnet.write("telnet 20.xx.xx.xx" + '\r\n')
telnet.read_until('Username: ', 3)
telnet.write(user + '\r')
telnet.read_until('Password: ', 3)
telnet.write(password + '\r')
telnet.write('enable' + '\r\n')
telnet.write(enable_password + '\r\n')
telnet.write("show logg"+ "\r\n")
telnet.write('exit' + '\r')
a = telnet.read_all()
f = open(host, 'w')
f.write(str(a))
telNetCall()代码工作正常,但执行起来需要很长时间。我相信我正在做的事情是不允许代码高效地运行。如果代码有任何问题,欢迎提出建议。任何帮助都是非常感谢的。
,我发现了这个错误,现在它对我来说很好。现在几乎不需要5秒了。
发布于 2018-01-12 07:28:39
您可以使用另一个read_xx()函数,如read_until()或read_eager()。
见下文对Telnet.read_all()的评论:
读取所有数据直到EOF;阻塞直到连接关闭。
https://stackoverflow.com/questions/45798935
复制相似问题