【问题标题】:How can I debug my Perl Net::Telnet program?如何调试我的 Perl Net::Telnet 程序?
【发布时间】:2011-01-06 18:07:14
【问题描述】:

我正在尝试通过Net::Telnet Perl 模块自动远程登录到不需要任何身份验证的 Linux 机器。这是一个测试脚本:

use strict;
use Net::Telnet;
my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die',
                               host=> '10.104.20.200', port => 2004,
                             ); 
$telnet->print('ls');
my $output = $telnet->waitfor('/\$ $/i');
print $output;

当我执行这个脚本时,我得到以下错误,

telnetPerl.pl 第 7 行的模式匹配超时。

如您所见,我正在匹配waitfor 中的任何字符。但我怀疑telnet连接是否首先发生。

【问题讨论】:

  • Debug => 1 添加到构造函数并发布输出。另外,不要使用间接对象表示法;相反,请使用my $telnet = Net::Telnet->new(...)
  • 尽管特殊考虑可能会使这种安全性变得安全,但通过 telnet 进行的匿名访问在安全方面存在根本缺陷。在您的 10.* 主机之一上运行的任何木马都可以通过网络扫描找到它并做各种邪恶的事情。我希望您至少已将您的 telnet 用户 chroot 到某个沙盒游乐场。

标签: perl telnet


【解决方案1】:

Net::Telnet 文档在 waitfor() 的条目下说:

当此方法持续超时并且您认为不应该时,使用 dump_log() 进行调试。

当您按照文档的说明进行操作时发生了什么? :)

【讨论】:

    猜你喜欢
    • 2011-10-25
    • 2010-11-07
    • 2011-02-02
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2017-07-06
    相关资源
    最近更新 更多