今天是第三篇,分享一下腾讯域名拦截检测的api代码;
这个api调用腾讯网址安全中心,模拟用户请求,来查询域名是否被腾讯网址安全中心拦截,代码如下:
- <?php
- header("Access-Control-Allow-Origin:*");
- header('Content-type:application/json; charset=utf-8');
- $countfile = "num.txt";
- if (($fp = fopen($countfile, "r+")) == false) { //用读写模式打开文件,若不能打开就退出
- printf("打开文件 %s 失败!", $countfile);
- exit;
- } else {
- //如果文件能够正常打开,就读入文件中的数据,假设是1
- $count = fread($fp, 10);
- //读取10位数据
- $count = $count + 1;
- fclose($fp);
- //关闭当前文件
- $fp = fopen($countfile, "w+");
- //以覆盖模式打开文件
- fwrite($fp, $count);
- //写入加1后的新数据
- fclose($fp);
- //并关闭文件
- //echo $count;
- }
- error_reporting(0);
- !emptyempty($_GET['url']) ? $url = $_GET['url'] : exit(json_encode(['code'=>200101,"msg"=>"请输入网址"],JSON_UNESCAPED_UNICODE));
- $json = jsonp_decode(Curl_GET("https://cgi.urlsec.qq.com/index.php?m=check&a=check&callback=jQuery11.306943167371763181_15671.3944271&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);
- }
- ?>
继续阅读

微信公众号
博客微信公众号,欢迎关注。
2021年1月2日 下午7:00 7F
博主人去哪里了?
2021年1月6日 下午9:32 B1
@ 哥斯拉 业务繁忙,博客很久没有打理了。
2020年12月24日 下午5:21 6F
感谢分享 赞一个
2020年12月14日 下午1:17 5F
有空研究一下
2021年1月7日 下午8:08 B1
@ 风陌 好久不见。
2020年12月3日 下午8:52 4F
这个有啥用呀?没看懂呢!
2021年1月7日 下午8:09 B1
@ 南生余 就是一个检测是否被腾讯安全中心拦截的一个接口api代码。
2020年11月30日 下午9:09 3F
我以前用过.xyz域名,微信、QQ都提示安全问题
2021年1月7日 下午8:07 B1
@ 王光卫博客 小众域名经常会被腾讯拦截的。
2020年11月28日 下午12:17 2F
测试有效,保存了,谢谢
2021年1月7日 下午8:04 B1
@ 哥斯拉 客气了。
2020年11月28日 上午10:09 1F
这个很有用,狗日的腾讯,谢谢分享
2021年1月7日 下午8:05 B1
@ IT业界网 巨头都那样,习惯就好。