No conozco ninguna utilidad, pero hice un código simple para eso con Perl:
#!/usr/bin/perl
use Net::Ping;
use POSIX qw/strftime/;
if (-e '/var/run/net_test.pid') {
print "net_test already running.\n";
exit;
} else {
system "touch /var/run/net_test.pid";
}
my $host = "www.google.com";
my $ping = Net::Ping->new('icmp');
my $result = $ping->ping($host,2);
if ($result != 1) {
$format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is not available...";
$run = `echo $format >> /var/log/virtua_net`;
while ($result != 1) {
$result = $ping->ping($host,2);
sleep 60;
}
$format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is back...";
$run = `echo $format >> /var/log/virtua_net`;
} else {
$format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is ok...";
$run = `echo $format >> /var/log/virtua_net`;
}
$ping->close();
system "rm -rf /var/run/net_test.pid" if (-e "/var/run/net_test.pid");
exit;
Lo que hace es que intentará hacer ping a Google cada vez que se ejecute y luego se imprimirá en un archivo si recibió una respuesta o no junto con el tiempo para que pueda verificar más tarde desde qué hora hasta qué hora no estaba disponible Internet.
Si te gusta, puedo hacer los pequeños cambios para usar en Windows y necesitas instalar ActivePerl, eso es todo.
Los únicos cambios necesarios son rutas y comandos que pueden ser diferentes en Windows, nada más.