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 09 PHP
php 判断数组是几维数组
Mar 20 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
yii插入数据库防并发的简单代码
May 27 PHP
laravel orm 关联条件查询代码
Oct 21 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 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生成便于打印的网页
2006/10/09 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
jQuery技巧总结
2011/01/01 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
关于vue面试题汇总
2018/03/20 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python中apply函数的用法实例教程
2014/07/31 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python3调用windows dos命令的例子
2019/08/14 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
python 实现屏幕录制示例
2019/12/23 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
几道PHP的面试题
2012/05/19 面试题
党课学习思想汇报
2014/01/02 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
教师节老师寄语
2015/05/28 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书