aah ahh not so cool but handy maybe!!
linux peoples can rearrange easely.
run as follow: Aping.pl -i 10.0.0.1
or without args to get help
Lor*
#!perl
use strict;
use warnings;
$|++;
use Getopt::Long;
use Win32::Sound;
my $sleep = 60;
my $conteggio = 4;
my $echook = ( $conteggio - 1 );
my $alarmnum = 3;
my $sound;
my $volume = 100;
my $host;
&aiuto() if ( ! GetOptions ( 'ip=s' => \$host,
'sleep=i' => \$sleep,
'conteggio=i' => \$conteggio,
'ok=i' => \$echook,
'alarm=i' => \$alarmnum,
'play=s' => \$sound,
'volume=i' => \$volume,
) or ! $host );
$alarmnum = 3 if $alarmnum < 1;
if ( $echook > $conteggio ){ $echook = $conteggio-1 }
if (defined $sound && !(-e $sound)) {$sound = 'crow.wav'}
while (1){
sleep $sleep;
my $ok = &controlla($host);
if ($ok < $echook){
for (1..$alarmnum) { &suona() }
print "ERROR !\n";
}
else {print "OK $host\n";}
}
sub suona {
if (defined $sound && -e $sound) {
Win32::Sound::Volume($volume,$volume);
Win32::Sound::Play($sound);
}
else {sleep 1; print"\a\a"}
}
sub controlla{
my $ok =0;
open CMD,"ping -n $conteggio -l 1 $host 2>&1|";
while (<CMD>) {++$ok if $_ =~/$host/;print"."}
close CMD;
return $ok;
}
sub aiuto {
print <<EOA;
USAGE OF $0:
$0 -i 10.0.0.1 [-sleep n] [-conteggio n] [-ok n] [-alarm n] [-play
+ file.wav] [-volume %]
-i 10.0.0.1
ping specified IP every 60 seconds 4 times expecting 3 positives repl
+y or play 3 system bell during 3 seconds
--ip=10.10.0.1 --sleep = 30 --conteggio = 10 --ok = 5 --alarm = 20
-i 10.10.0.1 -s 30 -c 10 -o 5 -a 20
same of above
EOA
exit 1;
}