【问题标题】:Send telnet command in python在python中发送telnet命令
【发布时间】:2018-12-13 15:26:58
【问题描述】:

我正在尝试在 tetnet 中发送命令,但它不起作用。我尝试在这个论坛中找到不同的代码,但没有一个工作。它用于重新启动设备。我正在使用python 3.6。

import telnetlib

host = "192.168.1.0"
port = 23
timeout = 100

session = telnetlib.Telnet(host, port, timeout)
session.write("administrator\n").encode('ascii')
session.write("password\n").encode('ascii')
session.write("reboot\n").encode('ascii')

【问题讨论】:

  • 您考虑过使用 pexpect 吗?使用 pexpect,您可以有条件地指定下一步操作。您的案例非常简单,因此可能有点矫枉过正,但我​​建议您学习 pexpect,因为它更加灵活。

标签: python python-3.x telnet telnetlib


【解决方案1】:

Telnet.write() 函数接受一个字节字符串。这可以通过仅对字符串进行编码来提供(您尝试对函数的返回进行编码),例如

session.write("administrator\n".encode('ascii'))

或者在你的字符串前面加上 b 前缀,如下所示:

import telnetlib

host = "192.168.1.0"
port = 23
timeout = 100

with telnetlib.Telnet(host, port, timeout) as session:
    session.write(b"administrator\n")
    session.write(b"password\n")
    session.write(b"reboot\n")

【讨论】:

    猜你喜欢
    • 2015-03-05
    • 2012-05-22
    • 2013-04-09
    • 2014-01-30
    • 2017-04-13
    • 2014-09-26
    • 2019-10-05
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多