Тайм-аут перед записью пароля в TELNETLIB

Я пытаюсь подключиться по телнету к устройству с ip.

import telnetlib
deviceIp = '192.168.1.135'
password1='xxxxxx'
telnetConeection = telnetlib.Telnet(deviceIp,23)
telnetConeection.read_until(b'Password: ')
telnetConeection.write(password1.encode('ascii') + b"\n")
telnetConeection.write(b'\n')
telnetConeection.write(b'port\n')
print(telnetConeection.read_all())

Вывод: b'Timeout!\n'

Ясно, что :-

  • соединение с устройством установлено
  • скрипт читает до "Пароль"

Что мне непонятно, так это то, что: почему не работает пароль на запись и происходит тайм-аут? Пожалуйста, помогите мне.

Любое предложение будет высоко оценено!


person Archiac Coder    schedule 21.01.2019    source источник
comment
Так пароль подходит или нет? Вы уверены, что у вас открыт порт (23)?   -  person l'L'l    schedule 21.01.2019
comment
Да, когда я выполняю telnet 192.168.1.135 23 на терминале, он работает нормально! Вывод: b'Timeout!\n' при выполнении выше   -  person Archiac Coder    schedule 21.01.2019
comment
Можете ли вы опубликовать журнал подключения, возможно?   -  person l'L'l    schedule 21.01.2019
comment
Извините! однако здесь не проводилось ведение журнала! извините за неудобства   -  person Archiac Coder    schedule 21.01.2019
comment
Я бы предположил, что это что-то основное в сценарии, вызывающее тайм-аут; на какой платформе вы пытаетесь запустить это? Возможно, попробуйте этот скрипт и посмотрите, сможете ли вы успешно подключиться (он показывает очень полезную информацию об отладке), использовать (python telnetlib.py -d "hostname")   -  person l'L'l    schedule 22.01.2019
comment
Спасибо за ваш ценный ответ! Я использую Убунту 18.04. Вышеупомянутый скрипт, который вы упомянули, завис с момента его выполнения довольно давно! Он все еще завис! нет ответа   -  person Archiac Coder    schedule 22.01.2019
comment
Пожалуйста! Чтобы определить, является ли это проблемой на стороне хоста или клиента, попробуйте другой хост telnet, такой как «rainmaker.wunderground.com», чтобы увидеть, подключится ли он.   -  person l'L'l    schedule 22.01.2019
comment
Привет, хост, о котором вы упомянули, у меня не работал. Но я успешно получил ответ от порта 13 india.colorado.edu (время в качестве ответа) через python   -  person Archiac Coder    schedule 22.01.2019


Ответы (1)


Я не думаю, что ответ так же прост, как увеличение тайм-аута? Может другой конец медленный?

timeout=30
telnetConeection.read_until(b'Password: ', timeout)

Кроме того, вам, вероятно, следует перепроверить все, что вам отправляет другой конец. Возможно, другой конец даже ничего вам не отправляет (что указывало бы на другую проблему). Похоже, вы проверили это и получили то, что ожидали.

ТАКЖЕ, Telnet.expect может дать вам больше информации о ваших ошибках (например, EOF? Ничего не совпало?)

person Will Lyles    schedule 21.01.2019