- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过 Python3 远程登录到 Cisco 路由器。但是,它在运行脚本后挂断了(但我能够从我的 Linux bash telnet 到路由器)。请在下面查看我的脚本片段和输出。
import getpass
import telnetlib
HOST = "10.10.32.3"
user = input("Enter your telnet username: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
if password:
tn.read_until(b"Password: ")
tn.write(password.encode('ascii') + b"\n")
tn.write(b"conf t\n")
tn.write(b"int l0\n")
print(tn.read_all().decode('ascii'))
这是路由器上debug telnet
的输出
Router#
*Nov 2 23:48:24.317: Telnet578: 1 1 251 1
*Nov 2 23:48:24.318: TCP578: Telnet sent WILL ECHO (1)
*Nov 2 23:48:24.318: Telnet578: 2 2 251 3
*Nov 2 23:48:24.318: TCP578: Telnet sent WILL SUPPRESS-GA (3)
*Nov 2 23:48:24.318: Telnet578: 80000 80000 253 24
*Nov 2 23:48:24.319: TCP578: Telnet sent DO TTY-TYPE (24)
*Nov 2 23:48:24.319: Telnet578: 10000000 10000000 253 31
*Nov 2 23:48:24.319: TCP578: Telnet sent DO WINDOW-SIZE (31)
*Nov 2 23:48:24.383: TCP578: Telnet received DONT ECHO (1)
*Nov 2 23:48:24.383: TCP578: Telnet sent WONT ECHO (1)
*Nov 2 23:48:24.387: TCP578: Telnet received DONT SUPPRESS-GA (3)
*Nov 2 23:48:24.387: TCP578: Telnet sent WONT SUPPRESS-GA (3)
Router#
*Nov 2 23:48:24.389: TCP578: Telnet received WONT TTY-TYPE (24)
*Nov 2 23:48:24.389: TCP578: Telnet sent DONT TTY-TYPE (24)
*Nov 2 23:48:24.390: TCP578: Telnet received WONT WINDOW-SIZE (31)
*Nov 2 23:48:24.391: TCP578: Telnet sent DONT WINDOW-SIZE (31)
*Nov 2 23:48:24.407: TCP578: Telnet received DONT ECHO (1)
*Nov 2 23:48:24.407: TCP578: Telnet received DONT SUPPRESS-GA (3)
*Nov 2 23:48:24.407: TCP578: Telnet received WONT TTY-TYPE (24)
*Nov 2 23:48:24.408: TCP578: Telnet received WONT WINDOW-SIZE (31)
show tcp brief
的输出
Router#sho tcp brief
TCB Local Address Foreign Address (state)
10C90CE0 10.10.32.3.23 192.168.122.61.51466 ESTAB
我可以创建环回接口(interface),但我的 Linux bash 没有显示 telnet 输出。请相应指导。谢谢。
最佳答案
telnetlib 中的
.read_all()
被记录为“读取所有数据直到 EOF;阻塞直到连接关闭。”。因为您没有做任何会导致连接关闭的事情,所以挂起正是您应该期望在这里发生的事情。尝试先向路由器发送退出命令。或者,如果您打算根据读取的结果发出更多命令,请改用 .read_until()
(可能指定超时)。
关于python3 telnet read_all() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47087138/
我正在通过 Python3 远程登录到 Cisco 路由器。但是,它在运行脚本后挂断了(但我能够从我的 Linux bash telnet 到路由器)。请在下面查看我的脚本片段和输出。 import
我有一些 Python 代码,通过 telnet 连接到 OSPF 守护进程(由 Quagga 运行),然后执行以下操作: tn.write("show ip ospf database router
我用 python 编写了一段小代码,使用 telnet 库在多个 Cisco 路由器上自动执行配置任务。在第一次迭代中,一切正常,问题是我在函数 read_all() 的第二次迭代中超时。如果我从
read_all()"从思科设备读取数据。有时它会读取数据,有时它不会读取并给出空字符串。我尝试了以下 2 个命令,但它仍然没有持续读取数据。 data=tn.read_until("exit") d
我正在尝试使用 telnetlib 从 cisco 路由器读取数据 import telnetlib tn = telnetlib.Telnet(’10.106.218.50’, 17280) cmd
我是一名优秀的程序员,十分优秀!