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 "请输入一个参数
";    
  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
";
print "$host  lost is $K
";
}



##第二个参数为默认超时值($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.










                                    
原文地址:https://www.cnblogs.com/hzcya1995/p/13351937.html