php教程

网站Ping接口源码,IP地址+测速

我的站长站 2022-11-08 人阅读

网站Ping接口源码,接口利用的百度开发接口制作,接口可查IP地址和网站测速。

API接口代码

<?php
$hh=$_GET['hh']?:"\n";//换行符号(默认\n)
if($_GET['url']==null){
echo "请输入参数!";
exit();
}
if (preg_match('/http:\/\//i', $_GET['url'])|preg_match('/https:\/\//i', $_GET['url'])) {
echo '不能带http://或https://,只需要输入域名!';
exit();
}
$msg = $_GET['url'];
$host = $msg;
$port = '80';
$num = 2; //Ping次数
$tip = gethostbyname($_GET['url']);
//获取时间
function mt_f (){
list($usec,$sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec); //微秒加秒
}
function ping_f($host,$port){
$time_s = mt_f();
$ip = gethostbyname($host);
$fp = @fsockopen($host,$port);
if(!$fp)
return '测试超时';
$get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnect:".$port."Close\r\n";
fputs($fp,$get);
fclose($fp);
$time_e = mt_f();
$time = $time_e - $time_s;
$time = ceil($time * 1000);
return $time;
}
if(ping_f($host,$port)=='测试超时'){
echo '测试超时,请检查目标站点是否正常!';
}else{
for($i = 0;$i < $num;$i++){
if($i==0){
$s1=$t.ping_f($host,$port);
}elseif($i == 1){
$s2=$t.ping_f($host,$port);
}
//每次运行中间间隔1S
sleep(1);
//刷新输出缓存
ob_flush();
flush();
}
$se=json_decode(file_get_contents("http://opendata.baidu.com/api.php?query=".$tip."&co=&resource_id=6006&t=1433920989928&ie=utf8&oe=utf-8&format=json"),true);
$dz=$se["data"][0]["location"];
if($s1>$s2){
echo '查询数据:'.$msg.''.$hh.'';
echo 'IP地址:'.$tip.''.$hh.'';
echo '主机地址:'.$dz.''.$hh.'';
echo '最慢:'.$s1.'/ms'.$hh.'';
echo '最快:'.$s2.'/ms'.$hh.'';
echo '平均:'.(($s1-$s2)/2+$s2).'/ms';
}else{
echo '查询数据:'.$msg.''.$hh.'';
echo 'IP地址:'.$tip.''.$hh.'';
echo '主机地址:'.$dz.''.$hh.'';
echo '最慢:'.$s1.'/ms'.$hh.'';
echo '最快:'.$s2.'/ms'.$hh.'';
echo '平均:'.(($s1-$s2)/2+$s2).'/ms';
}
}
?>

返回格式示例

{"status":"0","t":"1433920989928","set_cache_time":"","data":[{"ExtendedLocation":"","OriginQuery":"114.158.169.85","appinfo":"","disp_type":0,"fetchkey":"114.158.169.85","location":"日本神奈川","origip":"114.158.169.85","origipquery":"114.158.169.85","resourceid":"6006","role_id":0,"shareImage":1,"showLikeShare":1,"showlamp":"1","titlecont":"IP地址查询","tplt":"ip"}]}

美化下

{
    "status": "0",
    "t": "1433920989928",
    "set_cache_time": "",
    "data": [{
        "ExtendedLocation": "",
        "OriginQuery": "114.158.169.85",
        "appinfo": "",
        "disp_type": 0,
        "fetchkey": "114.158.169.85",
        "location": "日本神奈川",
        "origip": "114.158.169.85",
        "origipquery": "114.158.169.85",
        "resourceid": "6006",
        "role_id": 0,
        "shareImage": 1,
        "showLikeShare": 1,
        "showlamp": "1",
        "titlecont": "IP地址查询",
        "tplt": "ip"
    }]
}
相关推荐
  • API接口
  • 支付宝企业账户转账个人账户php接口代码

    前言支付宝企业账户转账个人账户php接口代码,该接口主要用于平台对用户奖励的发放,场景也很简单就是我在你平台上有余额,我提现,平台给钱。只不过项目中是用的官方的SDK调用的,仔细看了下那个SDK目录,把很多无用的接口(目前自己用不上)也包含在里面,作为强...

    php教程 143 1年前
  • QQ互联API申请教程(图文)

    1、登录QQ互联在浏览器上打开网址:http://connect.qq.com/。点击右上角【登录】按钮,使用QQ账号登录。2、管理中心点击【管理中心】进入应用管理页面。(图中位置1)完善开发者资料,如果手册登录需要完善开发者资料。点击【创建应用】,开始创建应用。(图中位...

    经验分享 1164 3年前
  • 苹果CMS开放API相关服务接口

    开放式API数据接口-声明本接口仅供学习研究使用,请勿用于生产环境和非法渠道;不能保证稳定性和正确性;请牢记苹果cms官方域名: www.maccms.com(暂时关闭) www.maccms.net; 网路出现多个盗版苹果v10的程序,改头换面加入后门,请误下载使用没有诚信的盗版程序...

    苹果cms教程 854 3年前