Как проверить, может ли удаленный компьютер пинговать в Perl - PullRequest
0 голосов
/ 08 июля 2010

Мне нужно проверить, отправляет ли пинг удаленная машина, чтобы я мог сделать ssh с этой машиной и выполнить там команды. как сделать эту проверку в Perl?

Ответы [ 2 ]

6 голосов
/ 08 июля 2010

Net::Ping, но это глупый способ сделать это. Если вы хотите соединиться с SSH, просто сделайте это и обработайте ошибку, если вы не можете.

Если сетевой интерфейс отвечает на команду ping, это не гарантирует работоспособность SSH. И наоборот, SSH может работать, и пинг блокируется.

1 голос
/ 08 июля 2010

Простой и быстрый тест, который хост прослушивает на конкретном порту, можно выполнить с помощью 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...