Я пишу небольшой скрипт, который возвращает pingtimes для данного хоста. Пока все работает так, как должно, но хотело бы видеть, сколько потерянных пакетов.Подсчет потерянных пакетов с perl
При выполнении стандартной команды звона в течение окна командной строки вы получите что-то вроде этого:
Ping-statistic for 173.194.70.138:
Packets: Sent = 4, Received = 4, Lost = 0 (0%)
Как я могу сделать Perl подсчет каждый пакет теряется? Есть ли способ вызвать команды windows в perl?
Мой текущий код ниже:
#!/usr/bin/perl
use warnings;
use strict;
use Time::HiRes;
use Net::Ping;
use vars qw($ARGV $ret $duration $ip);
my $host = $ARGV[0] or print "Usage is: $0 host [timeout]\n" and exit 1;
my $timeout = $ARGV[1] || 5;
my $p = Net::Ping->new('icmp', $timeout);
if ($p->ping($host)) {
$p->hires();{
($ret, $duration, $ip) = $p->ping($host);
printf("$host [ip: $ip] is online (packet return time: %.2f ms)\n", 1000*$duration);
}
$p->close();
}else{
print "No such host, timeout of $timeout seconds reached\n";
}
Заранее спасибо!