如何在Net :: Telnet中指定绑定IP

时间:2013-09-06 19:13:39

标签: perl telnet

所以我坚持这个,下面我有一些代码,它将本地IP地址作为其绑定地址,然后telnet到指定端口上的指定服务器并返回值,事情是我需要它来绑定到服务器上的循环上的不同IP地址,我无法弄清楚如何做这个部分。

localhost => $ IP

我在下面指定了但是当我运行它时它得到了

错误的命名参数“localhost”赋予Net :: Telnet :: new()

如果有人能说出我在这里做错了什么,请提前致谢。

#!/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";
 }
}

1 个答案:

答案 0 :(得分:2)

documentation开始,localhost是一种方法,而不是参数:

my $telnet = Net::Telnet->new( Timeout=>10, Port=>$port, Errmode => 'return');
$telnet->localhost($ip);
$telnet->open($remoteserver);