#!/usr/bin/perl use Net::Ping; $|=1; my $host = $ARGV[0]; my $time = time(); my @a_status=("down","up"); my $p = Net::Ping->new("icmp",1); my $result=0; my $elapsed=0; while(1){ $lasttime=time(); $result= $p->ping($host); if ($result==$status){ $elapsed=time()-$time; print "\r$host is $a_status[$status] for $elapsed seconds"; if ($lasttime==time()){ sleep(1); } } else{ $elapsed=0; $time=time(); $status=$result; print "\n"; print "$host is $a_status[$status] for $elapsed seconds"; } }