【伸手党福利】php7+测网速——加载网页速度、ping测试指定ip(默认客户端ip)

测试客户端加载网页速度

$kb = 10240;
echo "测试文件 $kb Kb...<br /><!-";
flush();
$time = explode(" ", microtime());
$start = $time[0] + $time[1];
for ($x = 0; $x < $kb; $x++) {
    echo str_pad('', 1024, '.');
    flush();
}
$time = explode(" ", microtime());
$finish = $time[0] + $time[1];
$deltat = $finish - $start;

$speed = round($kb / $deltat, 3);
if ($speed < 1024) {
    echo "-> 测试完毕,消耗 $deltat 秒. <br />您的链接速度为 " . $speed . "Kb/s";

} else {
    echo "-> 测试完毕,消耗 $deltat 秒. <br />您的链接速度为 " . $speed / 1024 . "Mb/s";
}

服务器使用ping命令测试延迟。(默认与客户端ip之间)

//调用服务器ping命令
function global_ping($ip)
{
    $out = array();
//    echo $_SERVER['REMOTE_ADDR'];
    exec('ping ' . $ip . ' -n 1', $out);
    echo '<br />';
    $value = substr($out[2], strpos($out[2], "ms") - 4, 8) . "<br /><br />";
    $str = '';
    if (preg_match_all('/[0-9]/', $value, $arr)) {

        foreach ($arr[0] as $ar) {
            $str = $str . $ar;
        }
//        echo $str;

    }
    if ($str == '') {
        $str = '<b>time out!</b>';
    }
    return $str;


}


//取客户端IP地址
function global_getip()
{
    global $ip;

    if (getenv("HTTP_CLIENT_IP")) {
        $ip = getenv("HTTP_CLIENT_IP");
    } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    } elseif ($_SERVER['REMOTE_ADDR']) {//php7报错:getenv("REMOTE_ADDR"),因为php7没有REMOTE_ADDR变量,只有$_SERVER['REMOTE_ADDR']变量。
        $ip = $_SERVER['REMOTE_ADDR'];
    } else {
        $ip = "Unknow";
    }
    //本地调试时候会出现以下情况,使用ip调试恢复正常,所以进行以下更改
    if ($ip == '::1') {
        $ip = '127.0.0.1';
    }
    //end
    return $ip;
}



echo global_ping(global_getip()) . "ms";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值