腾讯域名拦截检测源码 - PHP

原创 admin  2019-09-14 16:09:32  阅读 3738 次 评论 0 条

域名检测我见有人弄,而且大多数都是收费的接口,其实只要会一点技术就会去官网看看,然后抓一下接口就行了,腾讯域名安全检测是:https://urlsec.qq.com/ 这个网站,输入网址直接查询抓接口就行了,我们可以看到接口返回的参数,有个 type 那个就是域名的状态,我们不知道是什么的话 就输入域名一次一次看看就明白了,1 和 3 都是不拦截其他的都是拦截,另外接口最后有一串数字,一眼就能看出来是时间戳,那我们直接上代码吧。

<?php
header('Access-Control-Allow-Origin:*');
header('Content-type:application/json; charset=utf-8');
error_reporting(0);
!empty($_GET['url']) ? $url = $_GET['url'] : exit(json_encode([
    'code'=>-1,
    "msg"=>"请输入网址"
],JSON_UNESCAPED_UNICODE));
$json = jsonp_decode(Curl_GET("https://cgi.urlsec.qq.com/index.php?m=check&a=check&callback=jQuery111306943167371763181_1567183944271&url={$url}&_=".msectime()));
if ($json->reCode!==0){
    $arr=[
        "code"=>-1,
        "msg"=>$json->data,
    ];
}else{
    $type = $json->data->results->whitetype;
    $urls = $json->data->results->url;
    if ($type==1 || $type==3){
        $arr=[
            "code"=>1,
            "msg"=>"检测成功",
            "url"=>$urls,
            "type"=>"正常"
        ];
    }else{
        $arr=[
            "code"=>1,
            "msg"=>"检测成功",
            "url"=>$urls,
            "type"=>"拦截"
        ];
    }
}
exit(json_encode($arr,JSON_UNESCAPED_UNICODE));
/**
 * @return string
 * Curl GET
 */
function Curl_GET($url){
    $ch = curl_init();     // Curl 初始化
    $header = [
        'X-FORWARDED-FOR:218.91.92.84',
        'CLIENT-IP:218.91.92.84',
        'Cookie: pgv_pvi=9897416704; RK=WI7w5+CMZn; ptcz=e383433090496e1f60381fd68733196426868ba1876249a6736bcc4a3eb8ec72; pgv_pvid=455855220; cid=89410138-a33a-4ea9-98f2-4436da89d67d; _tfpdata=yBRknXvS8CfrED0zD85NZfxCPzT5SW8KEY03rIziZmu9ogk9y%2B5%2FU4QrJBbfqfuVqr%2F6vw8nSWfqHR3fu2Jc0TPvszwmrMwXEdN%2B8bKKfHwNCcL%2F2%2Fbhmiu%2B%2F4IgK1DX'
    ];
    curl_setopt($ch, CURLOPT_URL, $url);              // 设置 Curl 目标
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      // Curl 请求有返回的值
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);     // 设置抓取超时时间
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);        // 跟踪重定向
    curl_setopt($ch, CURLOPT_ENCODING, "");    // 设置编码
    curl_setopt($ch, CURLOPT_REFERER, $url);   // 伪造来源网址
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  //伪造IP
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");   // 伪造ua
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // 取消gzip压缩
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    $content = curl_exec($ch);
    curl_close($ch);    // 结束 Curl
    return $content;    // 函数返回内容
}

/**
 * 返回当前毫秒
 */
function msectime() {
    list($msec, $sec) = explode(' ', microtime());
    return (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
}

/**
 * @param $jsonp
 * @param bool $assoc
 * @return mixed
 * jsonp转对象
 */
function jsonp_decode($jsonp, $assoc = false)
{
    $jsonp = trim($jsonp);
    if(isset($jsonp[0]) && $jsonp[0] !== '[' && $jsonp[0] !== '{') {
        $begin = strpos($jsonp, '(');
        if(false !== $begin)
        {
            $end = strrpos($jsonp, ')');
            if(false !== $end)
            {
                $jsonp = substr($jsonp, $begin + 1, $end - $begin - 1);
            }
        }
    }
    return json_decode($jsonp, $assoc);
}

接口调用示例:?url=qqaba.com

本文地址:http://qqaba.com/jishujiaocheng/165.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?