我需要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()
当我在命令提示符下启动它时,它只是保持空白,没有任何错误。就好像它加载了很长时间,但路由器不会重启。脚本有点挂起。
感谢您的帮助!
答案 0 :(得分:0)
我今天在问题发生1。5年后面临同样的问题。就我而言,通过删除额外的空间来解决问题,即:
let c = coords.slice();
变为:
telnet.read_until(b"Password: ") # note the space before "
似乎存在问题是因为telnet服务没有输出额外的空间,因此read_until无法找到指定的字符串。
答案 1 :(得分:-1)
在我看来,传递给路由器的字符串有问题。它们不能是字节(不需要b
前缀)。尝试删除它。字符串编码似乎也很奇怪。