Кроссплатформенное решение для автоматизации сеансов telnet типа ncurses - PullRequest
4 голосов
/ 14 января 2010

Фон

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

Вопрос

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

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

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

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

1 Ответ

2 голосов
/ 14 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...