Отправить команду telnet в python

Я пытаюсь отправить команду в tetnet, но это не работает. я пробовал найти другой код на этом форуме, но никто не работает. это для перезагрузки устройства. я использую питон 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')

person Micky    schedule 05.07.2018    source источник
comment
Рассматривали ли вы возможность использования pexpect? С помощью pexpect вы можете условно указать следующее действие. Ваш случай очень прост, поэтому он может быть излишним, но я бы посоветовал изучить pexpect, поскольку он более гибкий.   -  person Mark    schedule 09.07.2018


Ответы (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")
person Martin Evans    schedule 05.07.2018