Net::Telnet - модуль, для взаимодействия с TCP-портами (включая telnet).
Описание
Net::Telnet позволяет вам соединиться с TCP-портом и
считывать/посылать информацию (I/O), в основном используя TELNET
протокол. Простейшие I/O-методы, такие как print, get, и getline
также поддерживаются. Другие интерактивные функции также
поддерживаются так как соединение по телнет-порту означает соединение
с программой, спроектированной в расчете на общение с человеком. Эти
функции включают возможности установления тайм-аутов и ожидания
определенной строки, например приглашение командной строки.
Другие случаи, когда вы хотите использовать Net::Telnet:
1. Вы не знакомы с соккетами (sockets) и просто хотите, чтобы скрипт
подключался к TCP-сервису.
2. Вы хотите устанавливать ваши собственные тайм-ауты на соединение,
чтение или запись.
3. Ваша программа общается с интерактивной программой на другом конце
соккета и вы хотите дождаться какой-либо строки.
Ниже приведен пример, который печатает список людей на хосте
("/usr/bin/who").
В дополнение к имени пользователя и пароля вы также должны знать
приглашение командной строки, которая например будет bash$.
Весь ввод - буферизован, вывод - нет. Каждый объект имеет свой
собственный буфер.
Разделитель на выводе у print() и cmd() установлен на "n", так что
нет нужды добавлять к каждой команде символ новой строки. Смотрите
output_record_separator() чтобы изменить такое поведение.
Методы login() и cmd() используют настройки prompt-а (приглашение
командной строки) чтобы определить когда вход в систему или удаленная
команда выполнена. Метод вылетит по тайм-ауту если вы установили не
правильное значение.
Используйте комбинацию из print() и waitfor() как альтернативу
функциям login() и cmd() когда они не делают желаемого.
Ошибки, такие как вылет по тайм-ауту обрабатываются согласно с
errmode. Действие по умолчанию - вывод сообщения и выход из программы.
Смотрите errmode() для большей информации.
Чтобы избежать неправильной интерпретации обратного слэша, всегда
используйте одинарную кавычку вместо двойной для prompt() и waitfor()
(например, 'bash$ $/'). Если вы используете DOS-пути, необходимо
использовать обратные слэши (например,
'/c:\\users\\billE<gt>$/I>').
Конечно не забывайте о символах типа ., [, или $. Для них необходим
всего лишь один обратный слэш. Символы ^ и $ указывают на позицию в
буфере.
На вводе, каждый <<возврат каретки>> и <<новая линия>> (например,
"