Telnetlib написать функцию, пропущенную букву - PullRequest
0 голосов
/ 02 июля 2019

Я пишу скрипт на python, который подключится к серверу telnet и напишет несколько основных команд.Часть входа работает нормально, так же как и команда «show version», но когда я пишу команду «quit», она набирает «uit» в telnet.

Одна вещь, которая сработала, это написание «qquit», это будет вводить "выйти" в телнет, но это противоречиво.Чтобы попробовать, я попробовал три команды «показать версию», две из них работали, средняя набрала «как версия», пропустив первую букву.

user = "cisco"
password = "cisco"
tn = telnetlib.Telnet(HOST)

tn.read_until(b"Username: ")
tn.write((user + "\n").encode('ascii'))
if password:
     tn.read_until(b"Password: ")
     tn.write((password + "\n").encode('ascii'))

tn.write(b"show version\n")
tn.write(b"quit\n")

print(tn.read_until(b"quit").decode('ascii'))

Ожидаемый вывод

DPI-testbed-Switch> Показать версию

...

...

...

DPI-Тестовый переключатель> quit

Фактический вывод

DPI-тестовый переключатель> Показать версию

...

...

...

DPI-testbed-Switch> uit

Перевод сервера домена "uit" ... (255.255.255.255)

IБуду очень признателен за любую помощь и буду рад любым изменениям, которые необходимо внести, если я могу выполнять команды надежным способом.

...