PHP 獲取 ping 時(shí)間的實(shí)現(xiàn)方法
PHP 可以通過exec函數(shù)執(zhí)行shell命令,來獲取ping時(shí)間。
代碼示例:
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>";
}
運(yùn)行結(jié)果:
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時(shí)間封裝成函數(shù)
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');
運(yùn)行結(jié)果:
Array ( [ping_min] => 0.025497 [ping_avg] => 0.025947 [ping_max] => 0.026753 )
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望通過本文能幫助到大家,謝謝大家對本站的支持!
- PHP實(shí)現(xiàn)獲取毫秒時(shí)間戳的方法【使用microtime()函數(shù)】
- PHP獲取當(dāng)前系統(tǒng)時(shí)間的方法小結(jié)
- PHP獲取MySQL執(zhí)行sql語句的查詢時(shí)間方法
- PHP編程獲取各個(gè)時(shí)間段具體時(shí)間的方法
- php獲取今日開始時(shí)間和結(jié)束時(shí)間的方法
- php獲取當(dāng)前月與上個(gè)月月初及月末時(shí)間戳的方法
- PHP中獲取文件創(chuàng)建日期、修改日期、訪問時(shí)間的方法
- PHP實(shí)現(xiàn)根據(jù)時(shí)間戳獲取周幾的方法
- PHP獲取當(dāng)前時(shí)間不準(zhǔn)確問題解決方案
相關(guān)文章
php批量更改數(shù)據(jù)庫表前綴實(shí)現(xiàn)方法
我們經(jīng)常會遇到替換或添加數(shù)據(jù)庫表前綴的問題,通過數(shù)據(jù)庫導(dǎo)出,在記事本上批量更改,然后再導(dǎo)出,這也是一種方法,但是不夠方便2013-10-10
thinkphp5框架API token身份驗(yàn)證功能示例
這篇文章主要介紹了thinkphp5框架API token身份驗(yàn)證功能,結(jié)合實(shí)例形式分析了thinkPHP5基于token的身份驗(yàn)證操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05
PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(八)
這篇文章主要介紹了PHP網(wǎng)頁游戲Xnova(ogame)源碼解讀的公共函數(shù)部分,需要的朋友可以參考下2014-06-06
CodeIgniter配置之routes.php用法實(shí)例分析
這篇文章主要介紹了CodeIgniter配置之routes.php用法,結(jié)合實(shí)例形式分析了routes.php中常用配置參數(shù)的含義及具體使用技巧,需要的朋友可以參考下2016-01-01
php生成N個(gè)不重復(fù)的隨機(jī)數(shù)實(shí)例
使用php生成N個(gè)不重復(fù)的隨機(jī)數(shù)的實(shí)例方法2013-11-11
Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作示例
這篇文章主要介紹了Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作,結(jié)合實(shí)例形式分析了thinkPHP控制器向視圖傳值及從視圖取值相關(guān)操作技巧,需要的朋友可以參考下2019-10-10

