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

StackOverflow https://stackoverflow.com/questions/2060420

Вопрос

Фон

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

Вопрос

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

  • Подходит для крупных проектов (напр.Похоже, что TCL не масштабируется, а также Python в моем опыте и кажется устаревшим)
  • Кроссплатформенность (например. Pexpect не работает в Windows и ActiveState ожидайте, что ведет себя по -разному в Windows Плюс требует от выключения DEP на более новых машинах)
  • Способен скринировать сеансы, перекрашивающие части экрана (аналогично поведению Ncurses в программах командной строки)
  • Бесплатно как пиво!

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

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

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top