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 相关文章推荐
常用表单验证类,有了这个,一般的验证就都齐了。
Dec 06 PHP
php 生成随机验证码图片代码
Feb 08 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
PHP CURL获取返回值的方法
May 04 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
php获取json数据所有的节点路径
May 17 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
Django数据库表反向生成实例解析
2018/02/06 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
如何基于python实现归一化处理
2020/01/20 Python
python实现门限回归方式
2020/02/29 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
英文自荐信格式
2013/11/28 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
法学专业求职信
2014/07/15 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
导游欢送词
2015/01/31 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript