2014-04-13 41 views
-1

我試圖打印「錯誤IP USER PASS失敗!」,失敗。Net :: Telnet錯誤處理

,當我用我的劇本

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和管理員都在工作。

[email protected]:~/tel# perl t2.pl *.*.*.* admin admin 
Logging In... 
Sending Username.... 
Sending Password.... 
success 

現在使用非工作的用戶,並通過我得到同樣的「成功」

[email protected]:~/tel# perl t2.pl 36.85.134.191 admin admi1 
Logging In... 
Sending Username.... 
Sending Password.... 
success 

我在做什麼錯的if語句,事情是不能正常工作。

回答

0

你或許應該啓用調試,但我想這對你的passwort結果期望不僅提示(例如$#),而且用戶名提示你如果密碼是錯誤的(:)相匹配。