Кроссплатформенное решение для автоматизации сеансов telnet типа ncurses

Фон

Часть моей работы в области сетей и телекоммуникаций связана с автоматизацией сеансов telnet, когда устаревшее оборудование не предлагает простых решений в других интерфейсах. Доступ ко многим более старым элементам оборудования возможен только через ремесленные порты (последовательные порты RS-232), SNMP или telnet. Иногда telnet является единственным способом доступа к определенной информации, однако telnet разработан как интерфейс для человека и, следовательно, требует очистки экрана. Кроме того, существует также проблема очистки экранов, где обновляются только части для экономии пропускной способности (см. Ncurses). В своей работе я использовал ActiveState Expect и библиотеку Telnet Python.

Вопрос

Какие языки и библиотеки способны автоматизировать сеансы telnet и имеют следующие требования:

  • Подходит для больших проектов (например, Tcl, кажется, не масштабируется так же хорошо, как Python в моем опыте и кажется устаревшим)
  • Кроссплатформенность (например, Pexpect не работает в Windows, а Activestate Expect ведет себя по-разному в Windows, плюс требуется отключить DEP на более новых машинах)
  • Возможность скрининга сеансов очистки, которые перерисовывают части экрана (аналогично поведению ncurses в программах командной строки)
  • Бесплатно как в пиве!

Предпочтительное решение также будет включать следующее:

  • Легко распространяется (например, не требует установки большого количества времени выполнения на машине).
  • Также работает для SSH, последовательных соединений и других интерфейсов командной строки.

1 ответ

Решение

Взгляните на demos/Expect/term_expect в дистрибутиве ActiveTcl. Он эмулирует адресно-адресный терминал и позволяет вам проверять вывод в определенных местах экрана. Посмотрите на пример кода очистки экрана в конце файла.

Другие вопросы по тегам