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环境搭建最新方法
Sep 05 PHP
php FPDF类库应用实现代码
Mar 20 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 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
php xml-rpc远程调用
2008/12/19 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
理解JS绑定事件
2016/01/19 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python3实现多线程聊天室
2018/12/12 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
电子商务应届生求职信
2013/11/16 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
教师节宣传方案
2014/05/23 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
医德医风个人总结
2015/02/28 职场文书
师范生见习总结范文
2015/06/23 职场文书
《观潮》教学反思
2016/02/17 职场文书
八年级数学教学反思
2016/02/17 职场文书