【问题标题】:How to specify the bind IP in Net::Telnet如何在 Net::Telnet 中指定绑定 IP
【发布时间】:2013-09-10 23:28:39
【问题描述】:

所以我坚持这个,下面我有一些代码将本地IP地址作为其绑定地址,然后远程登录到指定端口上的指定服务器并返回值,问题是我需要它来绑定到服务器上的循环上的不同 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";
 }
}

【问题讨论】:

    标签: perl telnet


    【解决方案1】:

    documentation出发,localhost是方法,不是参数:

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

    【讨论】:

    • 您先生是一位绅士和一位学者。不幸的是,我得到了另一个错误。 无法通过包“Net::Telnet”定位对象方法“localhost”
    • 你用的是什么版本?从ChangeLog 开始,此功能需要 3.04。 perl -MNet::Telnet -e 'print "$Net::Telnet::VERSION\n"'
    • 是的,就是那个版本,希望我能从这里拿走,非常感谢。
    • 嘿,我遇到了另一个问题,我如何返回标准输出,服务器允许我连接但关闭它并显示我需要捕获的消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    相关资源
    最近更新 更多