<pre name="code" class="sql">use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use Net::Ping;
use Socket;
my @array=( '10.5.129.243');
while (1==1){
my $CurrTime = time2iso(time());
foreach $host (@array){
$p = Net::Ping->new("icmp");
$ip_addr=gethostbyname($host);
eval{ $packed_ip_addr= inet_ntoa($ip_addr)};
if ($p->ping($host,2)) {
open (A, ">>ping.log");
print A ("$CurrTime---$packed_ip_addr is active.\n")
} else
{
open (B ,">>ping.log");

print B ("$CurrTime---$packed_ip_addr is lost.\n") ;system("SMSsendx 18072722237 \"$CurrTime--$packed_ip_addr is lost\" 10.128.166.32" )


}
sleep(5)
}}

($p->ping($host,2))
这里的2秒 是指Ping的2秒延时

平时使用ping的时候应该能注意到延时,这个就对应你说的超时,比如,一个ping的延时是2000ms,你设置超时为3s时,依然会告诉你能ping通,但是超时是2000ms;如果你设置超时为1s,那么就会告诉你超时了,主机不通