<?php
$size=1024*50;//这里你可以放大到*足够大*以确保数据能尽可能的接近真实
$callnumber=3;
$ip=$_SERVER[REMOTE_ADDR];
list($useca,$seca)=explode(" ",microtime());
@exec("ping -n $callnumber -l $size $ip",$data) or die("Support Forbid!");
list($usecb,$secb)=explode(" ",microtime());
$sec=$secb-$seca;
$msg=$data[count($data)-3];
list($drop,$info)=explode("(",$msg);
list($info,$drop)=explode("%",$info);
$spead=($size*$callnumber-$size*$callnumber*$info/100)/$sec;
echo sprintf("连接速度%.2f(k/s)",$spead/1024);
?>
--------------------------
以上仅仅是个演示,数据可能不准确,但可以给你个思路

解决方案 »

  1.   

    谢谢了我现在用JAVASCRIPT.当不准确请帮忙看看是那里的问题:
    <html>
    <head>
    <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <title>test speed</title>
    </head>
    <body>
    <script>
    tim=1;
    setInterval("tim++",100);
    b=1;
    autourl=new Array();
    for(i=1;i<101;i++)
    {
    autourl[i]="http://dev1.tetra-asia.com/image/work"+i+".gif" ;
    }
    function butt(){
    document.write("<form name=autof>")
    for(var i=1;i<autourl.length;i++)
    document.write("<input type=text name=txt"+i+" size=10 value=\xb2\xe2\xca\xd4\xd6\xd0\xa1\xad\xa1\xad class=buttonface>==><inp
    ut type=text name=url"+i+" size=60 class=buttonface><br>") ^M
    document.write("<input type=button value=\xd6\xd8\xd0\xc2\xb2\xe2\xca\xd4\xcb\xd9\xb6\xc8 onclick=top.location=self.location c
    lass=buttonface></form>")
    }
    butt();
    function auto(url){
    document.autof["url"+b].value=url;
    if(tim>2000)
    {document.forms[0]["txt"+b].value="\xc1\xb4\xbd\xd3\xb3\xac\xca\xb1"}
    else
    {
    document.autof["txt"+b].value="\xca\xb1\xbc\xe4"+tim/10+"\xc3\xeb";
    }
    b++;
    }function run()
    {
    for(var i=1;i<autourl.length;i++)document.write("<img src="+autourl[ i ]+"/"+Math.random()+" width=1 height=1 onerror=auto('"+
    autourl[i]+"')>")}
    run();
    </script>
    </body>
    </html>
      

  2.   

    另:
    ===       我提供的那个,存在一定问题(例如,用户机器装了防火墙禁止ping,或由于区域网络问题),建议使用上面的方法,配合IP库,然后选择有特征的机器(可以是服务器,也可以是用户机器,还可以是你设置的区域应答机),那样显得服务稳定和相对准确多了,但相对来说,投入也就多了很多!
           实在不行你可以考虑使用flash然后用里面的ACTION对JS传递数据也行~ GOOD LUCK~
      

  3.   

    真BT,公司要我们做得比这个还要BT,还不知怎么做呢!
      

  4.   

    不会说象我早先碰到的那样吧,非要我用JAVASCRIPT写计数器(这个BT问题我到现在还不晓得咋解决)