1. 程式人生 > >Ping 1000個包看丟跑率

Ping 1000個包看丟跑率

<pre name="code" class="sql">use warnings;    
use Net::Ping;  
 $J=0;
 $K=0;
for ($i = 1;$i <= 1000;$i++){  
if ($#ARGV <0){    
   print "請輸入一個引數\n";    
  exit(-1);    
}    
$host = $ARGV[0];    
$p = Net::Ping->new("icmp");
  if ($p->ping($host,5)){$J++ }
  
 
else{$K++}


 $p->close();    
 #sleep(1);
 print "$host  alive is $J\n";
print "$host  lost is $K\n";
}



##第二個引數為預設超時值($def_timeout),以秒為單位,設定此值是為了定義PING方法的超時值,預設為5秒

##第二個引數為預設超時值($def_timeout),以秒為單位,設定此值是為了定義PING方法的超時值,預設為5秒



 If a default timeout ($def_timeout) in seconds is provided, it is
        used when a timeout is not given to the ping() method (below). The
        timeout must be greater than 0 and the default, if not specified, is
        5 seconds


$p->ping($host [, $timeout]);
        Ping the remote host and wait for a response. $host can be either
        the hostname or the IP number of the remote host. The optional
        timeout must be greater than 0 seconds and defaults to whatever was
        specified when the ping object was created. Returns a success flag.
        If the hostname cannot be found or there is a problem with the IP
        number, the success flag returned will be undef. Otherwise, the
        success flag will be 1 if the host is reachable and 0 if it is not.
        For most practical purposes, undef and 0 and can be treated as the
        same case. In array context, the elapsed time as well as the string
        form of the ip the host resolved to are also returned. The elapsed
        time value will be a float, as returned by the Time::HiRes::time()
        function, if hires() has been previously called, otherwise it is
        returned as an integer.