1

だから私はこれに行き詰まっています.以下には、ローカルIPアドレスをバインドアドレスとして受け取り、指定されたポートの指定されたサーバーにtelnetして値を返すコードがあります.別のIPにバインドする必要があります.サーバー上にあるループ上のアドレスであり、その部分を行う方法がわかりません。

ローカルホスト => $ip

以下で指定しましたが、これを実行すると取得されます

Net::Telnet::new() に指定された名前付きパラメータ "localhost" が正しくありません

ここで私が間違っていたことを誰かが教えてくれたら、前もって感謝します。

#!/usr/bin/perl
my $iplist = '/vbin/iplist';
use Net::Telnet;
for(0..50)
{
 my $remoteserver = shift;
 my $interface='eth2:'.$_;
 my $ip = `ifconfig  $interface|grep inet| cut -d':' -f2|awk '{print \$1}'`;
 chomp($ip,$interface);
 my $return = testport2("$ip","25");
 print "$ip:\t$return\n";
 print "$ip:\t$return\n";

}
sub testport2
{
 my $ip =shift;
 my $port = shift;
 my $mailserver = shift;
 my $telnet = new Net::Telnet ( Timeout=>10, Port=>$port, Errmode => 'return', localhost => $ip );
 $telnet->open("$remoteserver");
 if ($telnet->errmsg)
 {
   return "errmsg: " . $telnet->errmsg . "\n";
 }else{
   return"success\n";
 }
}
4

1 に答える 1

2

ドキュメントから行くとlocalhost、パラメータではなくメソッドです:

my $telnet = Net::Telnet->new( Timeout=>10, Port=>$port, Errmode => 'return');
$telnet->localhost($ip);
$telnet->open($remoteserver);
于 2013-09-06T19:59:46.213 に答える