如何在perl中检查远程机器是否可ping

时间:2010-07-08 09:22:46

标签: perl

我需要检查远程计算机是否正在ping,以便我可以对该计算机执行ssh并在那里执行命令。怎么做这个检查perl?

2 个答案:

答案 0 :(得分:6)

Net::Ping,但这是一种愚蠢的方式。如果你想用SSH连接,就这样做,如果你不能,就处理失败。

如果网络接口响应ping,则无法保证SSH正常工作。相反,SSH可以工作,ping也被阻止。

答案 1 :(得分:1)

主机正在侦听特定端口的简单快速测试可以使用IO::Socket::INET

完成
use IO::Socket::INET;
my $address_tuple = "$ip:$port";
my $test_sock = IO::Socket::INET->new(PeerAddr => $address_tuple, Timeout  => 0.15);
if ( $test_sock) {
    # Host is up and appears to be listening on that port
    $test_sock->close();
}
else {
    # Host doesn't appear to be listening on that port
}