<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.