модуль perl Net :: Telnet с оболочкой telnet без приглашения - PullRequest
1 голос
/ 27 августа 2010

Используемый мной хост telnet не имеет символа приглашения (он просто переходит на пустой символ новой строки после завершения), как тогда мне использовать модуль perl Net::Telnet?

Iпопытался установить приглашение на // '' /\s/ или /\s*/, ни один из которых не работал.

'' выдал ошибку, сообщив, что она недействительна, и // /\s/ и /\s*/ просто истекли.

edit: Это нормально соединяется, но когда он пытается выдать команду, время ожидания истекает, потому что он не распознает приглашение.;

1 Ответ

4 голосов
/ 27 августа 2010

Вы не можете использовать cmd или login, если не можете заставить удаленную сторону выдавать подсказку, потому что они зависят от подсказки, чтобы знать, когда команда завершена.

Вы можете использовать $telnet->print('command') для выдачи команд. То, как вы читаете вывод, зависит от того, как вы ожидаете распознать конец вывода.

Если в последней строке есть какой-то узнаваемый шаблон, вы можете использовать waitfor в контексте списка.

Если вы знаете, сколько будет строк вывода, вы можете использовать getline и прочитать столько строк.

В худшем случае я, вероятно, использовал бы getline с таймаутом и предположил, что команда была завершена через N секунд без вывода.

...