【api服务】腾讯域名拦截检测

2020年11月27日22:16:43 13 142 3659字阅读12分11秒

今天是第三篇,分享一下腾讯域名拦截检测的api代码;

【api服务】腾讯域名拦截检测

这个api调用腾讯网址安全中心,模拟用户请求,来查询域名是否被腾讯网址安全中心拦截,代码如下:

  1. <?php
  2.     header("Access-Control-Allow-Origin:*");
  3.     header('Content-type:application/json; charset=utf-8');
  4.     $countfile = "num.txt";
  5.     if (($fp = fopen($countfile"r+")) == false) { //用读写模式打开文件,若不能打开就退出
  6.         printf("打开文件 %s 失败!"$countfile);
  7.         exit;
  8.     } else {
  9.         //如果文件能够正常打开,就读入文件中的数据,假设是1
  10.         $count = fread($fp, 10);
  11.         //读取10位数据
  12.         $count = $count + 1;
  13.         fclose($fp);
  14.         //关闭当前文件
  15.         $fp = fopen($countfile"w+");
  16.         //以覆盖模式打开文件
  17.         fwrite($fp$count);
  18.         //写入加1后的新数据
  19.         fclose($fp);
  20.         //并关闭文件
  21.         //echo $count;
  22.     }
  23.     error_reporting(0);
  24.     !emptyempty($_GET['url']) ? $url = $_GET['url'] : exit(json_encode(['code'=>200101,"msg"=>"请输入网址"],JSON_UNESCAPED_UNICODE));
  25.     $json = jsonp_decode(Curl_GET("https://cgi.urlsec.qq.com/index.php?m=check&a=check&callback=jQuery11.306943167371763181_15671.3944271&url={$url}&_=".msectime()));
  26.     if ($json->reCode!==0){
  27.         $arr=["code"=>-1,"msg"=>$json->data,];
  28.     }else{
  29.         $type = $json->data->results->whitetype;
  30.         $urls = $json->data->results->url;
  31.         if ($type==1 || $type==3){
  32.             $arr=["code"=>1,"msg"=>"检测成功","url"=>$urls,"type"=>"正常"];
  33.         }else{
  34.             $arr=["code"=>1,"msg"=>"检测成功","url"=>$urls,"type"=>"拦截"];
  35.         }
  36.     }
  37.     exit(json_encode($arr,JSON_UNESCAPED_UNICODE));
  38.     /**
  39.      * @return string
  40.      * Curl GET
  41.      */
  42.     function Curl_GET($url){
  43.         $ch = curl_init();     // Curl 初始化
  44.         $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'];
  45.         curl_setopt($ch, CURLOPT_URL, $url);              // 设置 Curl 目标
  46.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      // Curl 请求有返回的值
  47.         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);     // 设置抓取超时时间
  48.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);        // 跟踪重定向
  49.         curl_setopt($ch, CURLOPT_ENCODING, "");    // 设置编码
  50.         curl_setopt($ch, CURLOPT_REFERER, $url);   // 伪造来源网址
  51.         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  //伪造IP
  52.         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
  53.         curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // 取消gzip压缩
  54.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
  55.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  56.         $content = curl_exec($ch);
  57.         curl_close($ch);    // 结束 Curl
  58.         return $content;    // 函数返回内容
  59.     }
  60.     /**
  61.      *  返回当前毫秒
  62.      */
  63.     function msectime() {
  64.         list($msec$sec) = explode(' ', microtime());
  65.         return (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
  66.     }
  67.     /**
  68.      * @param $jsonp
  69.      * @param bool $assoc
  70.      * @return mixed
  71.      * jsonp转对象
  72.      */
  73.     function jsonp_decode($jsonp$assoc = false)
  74.     {
  75.         $jsonp = trim($jsonp);
  76.         if(isset($jsonp[0]) && $jsonp[0] !== '[' && $jsonp[0] !== '{') {
  77.             $begin = strpos($jsonp, '(');
  78.             if(false !== $begin)
  79.             {
  80.                 $end = strrpos($jsonp, ')');
  81.                 if(false !== $end)
  82.                 {
  83.                     $jsonp = substr($jsonp$begin + 1, $end - $begin - 1);
  84.                 }
  85.             }
  86.         }
  87.         return json_decode($jsonp$assoc);
  88.     }
  89. ?>
继续阅读
weinxin
微信公众号
博客微信公众号,欢迎关注。
avatar
  • 本文由 发表于 2020年11月27日22:16:43
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接。
稳定云服务器,香港VPS_美国VPS,高防服务器 稳定云服务器,香港VPS_美国VPS,高防服务器 硅云免费虚拟主机
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:13   其中:访客  7   博主  6
    • avatar 哥斯拉 0

      博主人去哪里了?

        • avatar 萧瑟

          @ 哥斯拉 业务繁忙,博客很久没有打理了。

        • avatar 站元素主机 1

          感谢分享 赞一个

          • avatar 风陌 2

            有空研究一下

              • avatar 萧瑟

                @ 风陌 好久不见。 :idea:

              • avatar 南生余 4

                这个有啥用呀?没看懂呢!

                  • avatar 萧瑟

                    @ 南生余 就是一个检测是否被腾讯安全中心拦截的一个接口api代码。 :cool:

                  • avatar 王光卫博客 2

                    我以前用过.xyz域名,微信、QQ都提示安全问题

                    • avatar 哥斯拉 1

                      测试有效,保存了,谢谢

                      • avatar IT业界网 0

                        这个很有用,狗日的腾讯,谢谢分享

                          • avatar 萧瑟

                            @ IT业界网 巨头都那样,习惯就好。 :idea: