Python3 telnet代码在启动后保持安静,不会向路由器发起命令

时间:2015-02-05 13:58:10

标签: python telnet router

我需要Telnet到我的路由器并发出重启命令。它必须通过Python实现。这是我得到的代码:

import sys
import telnetlib

HOST = "192.168.1.254"
user = "Administrator"
password = "xxxxxxxx"
port = "23"

telnet = telnetlib.Telnet(HOST,port)
telnet.read_until(b"login: ")

telnet.write(admin.encode('ascii') + b"\n")
telnet.read_until(b"Password: ")
telnet.write(password.encode('ascii') + b"\n")

telnet.write(b"system reboot\n")
telnet.close()

当我在命令提示符下启动它时,它只是保持空白,没有任何错误。就好像它加载了很长时间,但路由器不会重启。脚本有点挂起。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我今天在问题发生1。5年后面临同样的问题。就我而言,通过删除额外的空间来解决问题,即:

let c = coords.slice();

变为:

telnet.read_until(b"Password: ") # note the space before "

似乎存在问题是因为telnet服务没有输出额外的空间,因此read_until无法找到指定的字符串。

答案 1 :(得分:-1)

在我看来,传递给路由器的字符串有问题。它们不能是字节(不需要b前缀)。尝试删除它。字符串编码似乎也很奇怪。