доступ к маршрутизатору через telnet lib python

Я работаю над кодом, который использует telnetlib python для подключения к маршрутизатору, выполнения команд и сохранения вывода в файле.

Я использую функцию read_until('#') и ожидаю приглашение маршрутизатора, затем выполняю следующую команду, но мой код зависает, когда я получаю данные «--More--» с удаленной стороны telnet. Я попытался использовать сопоставление с шаблоном, чтобы найти «--More--», но иногда ключевое слово --More-- не появляется сразу.

Любое предложение ?

Должен ли я отправить команду IAC на удаленную сторону telnet?


person user3143451    schedule 01.07.2016    source источник


Ответы (1)


иногда ключевое слово --More-- не приходит сразу

Попробуйте пройти в тайм-аут.

Пример: установите тайм-аут на 5 секунд для read_until(). :

read_until('--More--', 5)

В качестве альтернативы вы можете использовать функцию expect() для найдите либо '#', либо '--More--' с тайм-аутом:

expect(['#', '--More--'], 5)
person victor    schedule 02.07.2016
comment
Я сделал оба из них, но они не работают. Он вообще не определяет слово. Там просто замерзает. - person user3143451; 02.07.2016
comment
Вы уверены, что "--More--" там есть? Попробуйте использовать read_very_eager() вместо read_until('--More--') и убедитесь, что он есть. - person victor; 02.07.2016
comment
Включил режим отладки и увидел слово... Оно там - person user3143451; 02.07.2016
comment
Не могли бы вы вставить свой код сюда, чтобы мы могли посмотреть, что происходит? - person victor; 02.07.2016