python的新手,但我试图自动打开一个telnet会话(使用内置的“telnetlib”库)到路由器,执行一个简单的命令(“spc”),打印输出到本地控制台,然后离开 .
#!/usr/bin/python
import sys
import telnetlib
HOST="54.18.5.0"
PORT=55555
tn=telnetlib.Telnet(HOST, PORT)
tn.read_until("Escape character is \'^]\'.")
tn.write("\u001d")
tn.read_until("telnet>")
tn.write("mode char" + "\n")
tn.write("spc\n")
print tn.read_all()
我的问题似乎在于“read_until”函数 . 当我运行上面的脚本时,它将挂起,直到键盘中断,此时我收到以下消息:
CTraceback (most recent call last):
File "./telnetMR.py", line 11, in
tn.read_until("Escape character is \'^]\'.")
File "/usr/lib64/python2.7/telnetlib.py", line 294, in read_until
return self._read_until_with_poll(match, timeout)
File "/usr/lib64/python2.7/telnetlib.py", line 318, in _read_until_with_poll
else 1000 * call_timeout)
我假设“read_until()”没有收到任何东西,因此等到超时,但我不明白为什么 .
(我使用“expect”编写了这个相同的脚本,它运行得很好但是我想看看我是否可以在python中使用它来提高效率...所以关于发送八进制字符串的任何评论都很受欢迎但是这不是什么问题是) .
谢谢 .
本文介绍了一个Python新手尝试使用telnetlib库自动化路由器会话的过程。作者希望实现连接到指定主机,执行命令并打印输出的目标,但在使用read_until方法时遇到了问题。
2793

被折叠的 条评论
为什么被折叠?



