1 、域名因违规或有风险被拦截(红色拦截)
2 、类似 taobao.com ,douyin.com 这种的恶意竞争式拦截,淘宝、抖音等微信的竞争对手一般都是白色拦截(白色拦截)
3 、有一个中间页的拦截,需要多次点击按钮才可以跳转到你的域名的,多是一些新型域名后缀,例如.top .xyz .link 后缀,这种情况,备案后可以解决(备案拦截)
通过 php get_headers()函数就可以分析到结果
这个下标为 6 是一个 URL,在微信访问后正是这个讨厌的页面!
如果切换为正常的链接的话,返回的 headers 是这样的
之前发过一次,但是之前的已经不能用了
现在又重新抓包,终于发现了,原来之前的接口
修改了数据返回的位置,之前是返回下标为[1]的
现在返回的位置下标是[6]既然这样
那么代码就好写了~下面是代码,再也不用网上收费的 api 了
<?php
// 返回 JSON
header('Content-type: application/json;charset=utf-8');
// 官方 API 接口
$api = get_headers('http://mp.weixinbridge.com/mp/wapredirect?url='.$_GET['url']);
// 检测 url 的合法性
$checkUrl = "/http[s]?:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is";
// 过滤 URL
switch($_GET['url'])
{
case (preg_match($checkUrl,$_GET['url'])):
$result = array(
'code' => 201,
'msg' => '你传入的 URL 不合法'
);
break;
case ($api[6] !== 'Location: '.$_GET['url'].''):
$result = array(
'code' => 202,
'msg' => '域名被拦截'
);
break;
case ($api[6] == 'Location: '.$_GET['url'].''):
$result = array(
'code' => 200,
'msg' => '域名正常'
);
break;
}
// 输出 JSON
echo json_encode($result,JSON_UNESCAPED_UNICODE);
?>
1 、新建 wxcheck.php 文件
2 、拷贝上面代码
3 、部署到服务器即可
4 、发起 Get 请求,URL 格式如下
http://域名 /目录 /wxcheck.php?url=你要检测的域名
1
aijialefu 2020-12-31 15:16:22 +08:00
老大,你是用手机访问,然后抓的包吗?
|
4
Mitt 2021-01-01 20:22:34 +08:00
备案拦截那个,其实是因为 http,如果是 https 就不拦了
|
5
hao888 2021-01-02 14:57:53 +08:00 via Android
谢谢老哥,马上部署使用下
|
7
Kinnice 2021-01-04 10:31:42 +08:00
直接检测返回的 Location,不必要一直纠结于下标,下标可能会经常改变。
|
8
unicloud 2021-01-04 12:01:59 +08:00
厉害哦! 666
|
9
dorothyREN 2021-01-04 16:39:02 +08:00
我用 python 搞了一个,也是参考你这个的
|
10
soseek 2021-01-04 17:45:36 +08:00
我发现似乎有些域名在微信里可以打开,用这个却返回被封了
|
12
haython 2021-01-04 18:32:47 +08:00
|
13
dorothyREN 2021-01-04 18:54:39 +08:00
Location 那个 url 里面 main_type=2 是被 ban 了,main_type=5 是提示浏览器访问
|
14
soseek 2021-01-06 14:45:17 +08:00
是这样判断,有些域名也是会误报的,不是说全部
|
15
summer2019 2021-01-07 11:01:45 +08:00
干,试了才发现老子博客被拦了。ctm 的腾讯
|