Вместо использования внешней программы, такой как ping
, вам следует рассмотреть возможность использования модуля Net :: Ping , который является стандартной частью установки Perl.
Из краткого описания:
use Net::Ping;
$p = Net::Ping->new();
print "$host is alive.\n" if $p->ping($host);
$p->close();
Что касается получения дополнительной информации, я предлагаю использовать Net :: OpenS SH. В комментарии вы говорите, что не можете использовать это, так как он не установлен в ваших удаленных системах, но я думаю, что вы неправильно понимаете, как это работает. Модуль должен быть установлен только в вашей локальной системе. Удаленным системам просто необходим сервер ssh
.
В качестве альтернативы вы можете посмотреть на Net :: SNMP или Nmap :: Parser .