使用PHP怎么写出高效率的ping检测

使用PHP怎么写出高效率的ping检测,第1张

"Ping值是衡量您所在地区的某个IP地址的访问和代理速度快慢的标准之一,如何通过Ping来观察一个IP的访问延迟(即快慢情况)是非常重要的。

Ping的步骤如下:

1)在电脑左下角找到开始项,点击开始项,找到运行菜单并点击。

2)选择一个IP地址,在?运行菜单打开后,输入以下格式即可:

(注意:写法为ping?66.186.45.34?-t)

DOS界面下

ping?210.51.214.1(回车即可)后面也可加参数。

【参数表】

-t????????Ping?the?specified?host?until?stopped.

??????????To?see?statistics?and?continue?-?type?Control-Break

??????????To?stop?-?type?Control-C.

-a????????Resolve?addresses?to?hostnames.

-n?count????Number?of?echo?requests?to?send.

-l?size??????Send?buffer?size.

-f????????Set?Don't?Fragment?flag?in?packet.

-i?TTL??????Time?To?Live.

-v?TOS??????Type?Of?Service.

-r?count????Record?route?for?count?hops.

-s?count????Timestamp?for?count?hops.

-j?host-list??Loose?source?route?along?host-list.

-k?host-list??Strict?source?route?along?host-list.

-w?timeout????Timeout?in?milliseconds?to?wait?for?each?reply.

ping前面无空格,ping后面紧接着空一格输入IP地址,IP地址输入完成后在空一格,输入-t,只有这样输入,才能确保格式正确;

3)查看IP地址的Ping值情况:

例如,time=215,此即表示ping值的大小,数字越小表示该IP在您所在的地区的访问和代理速度越快,反之则越慢。

813、在iis中如何加载php网页,使其能在浏览器中显示网页(哎呀帅的被人砍提供)

IIS分为IIS6和IIS7,两者机制不一样。

IIS7自带PHP,IIS6需要到www.php.net下载二进制包安装.

我们知道php配置有几种:

1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。

特点是:稳定,但效率太低。

2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。

特点是:多线程,效率较高,但不够稳定。

3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。

特点是:高效率,高稳定性,属于将来发展趋势。

建议使用第三种,也是最好最快的,因为FastCGI大大加强了IIS处理PHP的能力,能迅速提高PHP站点的反应速度和生产力。

<?php

//有一个php的ping程序目的是来测试网速和连接情况的,程序和运行的结果如下,现在想把结果取出部分值并组成新数组,如下面的结果,要取得值"50% los","232ms","232ms"."232ms"返回新数组如:"50%,232,232,232",也就是程序运行结果直接返回"50%,232,232,232",而不要那么多ping 程序执行结果

////////ping 程序开始////////?>

<FORM method='POST' action='<?php echo $PHP_SELF?>'>

<table border=1 cellspacing=0 cellpadding=1 width="400" bgcolor=#808080>

<tr>

<th colspan=2 align=center>怎么利用PHP去ping一个地址</th>

</tr>

<tr>

<th bgcolor=#066b98>请输入url或ip地址:</th>

<td><INPUT type='text' name='server' size='30' maxlength='30'></td>

</tr>

<tr>

<td></td>

<td><INPUT type='submit' value='发送' ></td>

</tr>

</table>

</FORM>

<?php

if(($server == '127.0.0.1')||($server == 'localhost')||($server == getenv("SERVER_ADDR"))) {

echo "<HR noshade size=1<br>"

echo "<font color=red size=1>Fuck Off!</font><br>"

echo "<HR noshade size=1<br>"

exit

} else {

if($server =="") {

echo "<H2>请输入url或ip地址:</H2>"

exit

}

}

$ip1 = getenv("REMOTE_ADDR")

$hname = getenv("HTTP_HOST")

$count = 5

$psize = 32

echo "<b>Your IP is:</b><i>$ip1</i><br>"

."<b>Trying to ping:</b><i>$server</i><br>"

."<b>Using server:</b><i>$hname</i>"

echo "<HR noshade size=1<br>"

echo "<b>STATS:</b><br><br>"

// 该函数返回对提交主机ping的值 lost/min/max/avg

function myPing($ping_count='4',$ping_psize='32', $ping_server='www.baidu.com')

{

$command = "ping -n $ping_count -l $ping_psize $ping_server"

exec($command, $result, $rval)

$aa=count($result)

if(count($result) <= 0) {

$myPing='100%,0,0,0'

exit

}

$bb=$aa-3

$cc=$aa-1

$ping_los=explode(',',$result[$bb])

$ping_times=explode(',',$result[$cc])

$ping_lose_value= strstr($ping_los[2],'(')

$ping_lose_value=preg_replace('/[^0-9.]+/','',$ping_lose_value)

$ping_times_min= preg_replace('/[^0-9.]+/','',$ping_times[0])

$ping_times_max= preg_replace('/[^0-9.]+/','',$ping_times[1])

$ping_times_avg= preg_replace('/[^0-9.]+/','',$ping_times[2])

$myPing= $ping_lose_value.'%,'.$ping_times_min.','.$ping_times_max.','.$ping_times_avg

echo $myPing

}

echo myPing(6,32,$server)

//2个小时...郁闷 本以为三十分可以解决 函数已经给你封装了 你可以自己扩展了 希望尽可能的还是多给点分 好累..

?>

一般环境不会设置给你调用系统命令的权限的,你可用用php的通信来判断。

例如:

file_get_contents 第三个参数有个语句句柄可以设置超时时常,比如3秒,多次超过3秒超时说明ping不通;

还有curl,能模拟的情况更丰富些


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11532255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存