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+java实现自动新闻滚动窗口
Oct 09 PHP
PHP文件上传实例详解!!!
Jan 02 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
PHP获取当前页面URL函数实例
Oct 22 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
如何运行/调试你的PHP代码
Oct 23 PHP
基于PHP实现生成随机水印图片
Dec 09 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
smarty基础之拼接字符串的详解
2013/06/18 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
PyQt5每天必学之布局管理
2018/04/19 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
应届毕业生个人自荐信范文
2013/11/30 职场文书
童装店创业计划书
2014/01/09 职场文书
销售助理岗位职责
2014/02/21 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
廉政承诺书
2015/01/19 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
小学新课改心得体会
2016/01/22 职场文书
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技