【问题标题】:Net::Telnet Error HandlingNet::Telnet 错误处理
【发布时间】:2014-05-27 18:11:53
【问题描述】:

我尝试在失败时打印“错误 IP USER PASS 失败!”。

当我使用我的脚本时

    use Net::Telnet ();
my $t = new Net::Telnet Timeout => 30,
Prompt => '/[\$#%:><][\s\b]+$/';
$t->open($ARGV[0]);
my $user = $ARGV[1];
my $pass = $ARGV[2];

        print "Logging In...\n";
        print "Sending Username....\n";
        $t->print($user);
                $t->waitfor('/[:>%\$#]/');
        print "Sending Password....\n";
        $t->print($pass);
                $t->waitfor('/[:>%\$#]/');

 if ($t->errmsg){
               print "errmsg: " . $t->errmsg . "\n";
        } else {
               print"success\n";
        }

问题:

我知道 IP 和用户名:admin 和 admin 正在工作。

root@localhost:~/tel# perl t2.pl *.*.*.* admin admin
Logging In...
Sending Username....
Sending Password....
success

现在使用非工作用户并通过我得到相同的“成功”

root@localhost:~/tel# perl t2.pl 36.85.134.191 admin admi1
Logging In...
Sending Username....
Sending Password....
success

我在 if 语句中做错了什么,有些东西不能正常工作。

【问题讨论】:

    标签: perl error-handling telnet


    【解决方案1】:

    您可能应该启用调试,但我猜您对密码结果的期望不仅与提示符(例如$#)匹配,而且与密码错误时得到的用户名提示匹配(@987654323 @)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 2017-02-25
      • 2016-06-22
      • 2016-07-16
      • 1970-01-01
      相关资源
      最近更新 更多