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来写记数器(详细介绍)
Oct 09 PHP
php 冒泡排序 交换排序法
May 10 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 PHP
php中的依赖注入实例详解
Aug 14 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php中explode函数用法分析
2014/11/15 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
jquery 根据name名获取元素的value值
2015/02/27 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
js禁止表单重复提交
2017/08/29 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
Python日期时间Time模块实例详解
2019/04/15 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
python实现加密的方式总结
2020/01/19 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
python爬虫如何解决图片验证码
2021/02/14 Python
英国假发网站:Hothair
2018/02/23 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
促销活动总结
2014/04/28 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
教师创先争优承诺书
2015/04/27 职场文书
亮剑观后感300字
2015/06/05 职场文书
汶川大地震感悟
2015/08/10 职场文书
给校长的建议书作文500字
2015/09/14 职场文书