PHP 获取 ping 时间的实现方法
PHP可以通过exec函数执行shell命令,来获取ping时间。
代码示例:
echo'PHP_INT_MAX:'.PHP_INT_MAX."
"; $ip='115.29.237.28';//IP地址 if(PATH_SEPARATOR==':')//linux { echo'Iamlinux'."
"; exec("ping-c3-w5$ip",$info); echo'linuxinfo:'."
"; print_r($info); $ping_time_line=end($info); echo'
ping_time_line:'.$ping_time_line."
"; $ping_time=explode("=",$ping_time_line)[1]; $ping_time_min=explode("/",$ping_time)[0]/1000.0; $ping_time_avg=explode("/",$ping_time)[1]/1000.0; $ping_time_max=explode("/",$ping_time)[2]/1000.0; echo$ping_time_min."".$ping_time_avg."".$ping_time_max."
"; } else//windows { echo'Iamwindows'."
"; exec("ping-c3-w5$ip",$info); echo'windowsinfo:'."
"; print_r($info); $info_time=end($info); echo'
info_time:'.$info_time."
"; }
运行结果:
PHP_INT_MAX:9223372036854775807
Iamlinux
linuxinfo:
Array([0]=>PING115.29.237.28(115.29.237.28)56(84)bytesofdata.[1]=>64bytesfrom115.29.237.28:icmp_seq=1ttl=52time=26.1ms[2]=>64bytesfrom115.29.237.28:icmp_seq=2ttl=52time=27.5ms[3]=>64bytesfrom115.29.237.28:icmp_seq=3ttl=52time=25.2ms[4]=>[5]=>—115.29.237.28pingstatistics—[6]=>3packetstransmitted,3received,0%packetloss,time2002ms[7]=>rttmin/avg/max/mdev=25.280/26.339/27.590/0.970ms)
ping_time_line:rttmin/avg/max/mdev=25.280/26.339/27.590/0.970ms
0.025280.0263390.02759
获取Ping时间封装成函数
functionping_time($ip){ $ping_cmd="ping-c3-w5".$ip; exec($ping_cmd,$info); $ping_time_line=end($info); $ping_time=explode("=",$ping_time_line)[1]; $ping_time_min=explode("/",$ping_time)[0]/1000.0; $ping_time_avg=explode("/",$ping_time)[1]/1000.0; $ping_time_max=explode("/",$ping_time)[2]/1000.0; $result=array(); $result['ping_min']=$ping_time_min; $result['ping_avg']=$ping_time_avg; $result['ping_max']=$ping_time_max; print_r($result); } ping_time('115.29.237.28');
运行结果:
Array([ping_min]=>0.025497[ping_avg]=>0.025947[ping_max]=>0.026753)
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!