我需要检查远程计算机是否正在ping,以便我可以对该计算机执行ssh并在那里执行命令。怎么做这个检查perl?
答案 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
}