PHP 获取 ping 时间的实现方法


Posted in PHP onSeptember 29, 2017

PHP 可以通过exec函数执行shell命令,来获取ping时间。

代码示例:

echo 'PHP_INT_MAX : ' . PHP_INT_MAX . "<br><br>";
 
$ip = '115.29.237.28';    // IP地址
 
if (PATH_SEPARATOR==':')  // linux
{
  echo 'I am linux' . "<br><br>";
   
  exec("ping -c 3 -w 5 $ip", $info);
  echo 'linux info : ' . "<br>";
  print_r($info);
   
  $ping_time_line = end($info);
  echo '<br><br>ping_time_line : ' . $ping_time_line . "<br><br>";
   
  $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 . "<br><br>";
   
}
else             // windows
{
  echo 'I am windows' . "<br><br>";
 
  exec("ping -c 3 -w 5 $ip", $info);
  echo 'windows info : ' . "<br>";
  print_r($info);
   
  $info_time = end($info);
  echo '<br><br>info_time : ' . $info_time . "<br><br>";
}

运行结果:

PHP_INT_MAX : 9223372036854775807

I am linux

linux info :

Array ( [0] => PING 115.29.237.28 (115.29.237.28) 56(84) bytes of data. [1] => 64 bytes from 115.29.237.28: icmp_seq=1 ttl=52 time=26.1 ms [2] => 64 bytes from 115.29.237.28: icmp_seq=2 ttl=52 time=27.5 ms [3] => 64 bytes from 115.29.237.28: icmp_seq=3 ttl=52 time=25.2 ms [4] => [5] => — 115.29.237.28 ping statistics — [6] => 3 packets transmitted, 3 received, 0% packet loss, time 2002ms [7] => rtt min/avg/max/mdev = 25.280/26.339/27.590/0.970 ms )

ping_time_line : rtt min/avg/max/mdev = 25.280/26.339/27.590/0.970 ms

0.02528 0.026339 0.02759

 获取Ping时间封装成函数

function ping_time($ip) {
  $ping_cmd = "ping -c 3 -w 5 " . $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 )

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
PHP计数器的实现代码
Jun 08 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
深入php内核之php in array
Nov 10 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 #PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 #PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 #PHP
WHOOPS PHP调试库的使用
Sep 29 #PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 #PHP
PHP网页安全认证的实例详解
Sep 28 #PHP
php二维码生成以及下载实现
Sep 28 #PHP
You might like
php UTF8 文件的签名问题
2009/10/30 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
php实现encode64编码类实例
2015/03/24 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
js中opener与parent的区别详细解析
2014/01/14 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
Python随机生成彩票号码的方法
2015/03/05 Python
Python中subprocess的简单使用示例
2015/07/28 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python将list转为matrix的方法
2018/12/12 Python
Python单元和文档测试实例详解
2019/04/11 Python
Python如何将函数值赋给变量
2020/04/28 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
遗嘱继承公证书
2014/04/09 职场文书
社团个人总结范文
2015/03/05 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
培训感想范文
2015/08/07 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript