parent
3f861a41b9
commit
a73df10f84
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use Term::ANSIColor;
|
||||||
|
|
||||||
|
if ($ARGV[0] !~ /[a-z0-9\.]+/) {
|
||||||
|
print "Need... Arg...\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$dns=$ARGV[0];
|
||||||
|
|
||||||
|
my $regex="";
|
||||||
|
|
||||||
|
if ($^O == "linux") {
|
||||||
|
#$regex='([0-9]+ bytes) from ([a-z\.-]+) \(([0-9\.]+)\).*seq=([0-9]+).*time=([0-9\. ms]+)'
|
||||||
|
#$regex='(?<bytes>[0-9]+ bytes) from (?<rhost>[a-z\.-]+) \((?<rip>[0-9\.]+)\).*seq=(?<rseq>[0-9]+).*time=(?<rms>[0-9\. ms]+)';
|
||||||
|
$regex=qr/(?<bytes>[0-9]+ bytes) from (?<rhost>[a-z\.-]+) \((?<rip>[0-9\.]+)\).*seq=(?<rseq>[0-9]+).*time=(?<rms>[0-9\.]+) ms/;
|
||||||
|
$dedjex=qr/no answer yet for icmp_seq=(?<rseq>[0-9]+)/
|
||||||
|
} elsif ($^O == "MSWin32") {
|
||||||
|
print "win!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
open(my $PING, "ping -O $dns|") or die "Cannot execute $!";
|
||||||
|
|
||||||
|
while (my $line = <$PING>) {
|
||||||
|
if ($line =~ $regex) {
|
||||||
|
#print "$4 - $5 - $2 ($3)\n";
|
||||||
|
#print "$+{rseq} - $+{rms} - $+{rhost} ($+{rip})\n";
|
||||||
|
if ($+{rms} > 100) {print color("bright_red");}
|
||||||
|
elsif ($+{rms} > 50) {print color("bright_yellow");}
|
||||||
|
printf "% 3s - % 4s ms - %s (%s)\n", $+{rseq}, $+{rms}, $+{rhost}, $+{rip};
|
||||||
|
if ($+{rms} > 50) {print color("reset");}
|
||||||
|
} elsif ($line =~ $dedjex) {
|
||||||
|
print color("bright_red");
|
||||||
|
printf "% 3s - no reply %s\n", $+{rseq}, $dns;
|
||||||
|
print color("reset");
|
||||||
|
} else {
|
||||||
|
print $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
close($PING);
|
||||||
|
|
Loading…
Reference in new issue