【问题标题】:perl Net::Telnet module with telnet shell with no prompt characterperl Net::Telnet 模块,带有没有提示符的 telnet shell
【发布时间】:2010-08-27 12:24:56
【问题描述】:

我正在使用的telnet主机没有提示符,(完成后它只是进入一个空白换行符),那么我应该如何使用Net::Telnet perl模块?

我尝试将提示设置为 // '' /\s//\s*/ 均无效。

'' 给出错误提示它无效,// /\s//\s*/ 只是超时。

my $t = new Net::Telnet (Timeout => 10, Prompt => '/\s*/');

edit:这个连接很好,但是当它尝试发出命令时,它会超时,因为它无法识别提示。;

【问题讨论】:

  • @hlynur,不,因为这将在 每一 行输出之后匹配。仅仅因为你还没有收到更多的输出并不意味着它不会到来。

标签: perl module telnet


【解决方案1】:

如果无法让远程端发出提示,则不能使用cmdlogin,因为它们依赖于提示知道命令何时完成。

您可以使用$telnet->print('command') 发出命令。您如何读取输出取决于您期望如何识别输出的结尾。

如果最后一行有一些可识别的模式,您可以在列表上下文中使用waitfor

如果你知道会有多少行输出,你可以使用getline,然后读取那几行。

在最坏的情况下,我可能会使用带有超时的getline,并假设命令在 N 秒后完成而没有输出。

【讨论】:

    猜你喜欢
    • 2011-10-25
    • 2013-01-20
    • 1970-01-01
    • 2016-10-30
    • 2017-02-26
    • 2014-09-18
    • 2011-01-30
    • 2021-02-15
    • 1970-01-01
    相关资源
    最近更新 更多