Ping 1000個包看丟跑率
阿新 • • 發佈:2019-02-12
<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.