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学习教程之第1天
Jun 15 PHP
php socket方式提交的post详解
Jul 19 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
PHP把网页保存为word文件的三种方法
Apr 01 PHP
php常用的url处理函数总结
Nov 19 PHP
php去除二维数组的重复项方法
Nov 03 PHP
分享10段PHP常用代码
Nov 11 PHP
thinkPHP查询方式小结
Jan 09 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
Laravel框架创建路由的方法详解
Sep 04 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中取得URL的根域名的代码
2011/03/23 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
JS求平均值的小例子
2013/11/29 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
浅谈python 线程池threadpool之实现
2017/11/17 Python
详解Python3中ceil()函数用法
2019/02/19 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
介绍一下Python中webbrowser的用法
2013/05/07 面试题
J2EE相关知识面试题
2013/08/26 面试题
天网工程实施方案
2014/03/26 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
用Python提取PDF表格的方法
2021/04/11 Python
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA