[全新官方接口] PHP 检测微信域名拦截,检测微信域名被封

2020-12-31 10:26:41 +08:00
 pytth

你的域名在微信被拦截的 3 种常见情况

1 、域名因违规或有风险被拦截(红色拦截)
2 、类似 taobao.comdouyin.com 这种的恶意竞争式拦截,淘宝、抖音等微信的竞争对手一般都是白色拦截(白色拦截)
3 、有一个中间页的拦截,需要多次点击按钮才可以跳转到你的域名的,多是一些新型域名后缀,例如.top .xyz .link 后缀,这种情况,备案后可以解决(备案拦截)


通过 php get_headers()函数就可以分析到结果
这个下标为 6 是一个 URL,在微信访问后正是这个讨厌的页面!


如果切换为正常的链接的话,返回的 headers 是这样的


之前发过一次,但是之前的已经不能用了
现在又重新抓包,终于发现了,原来之前的接口
修改了数据返回的位置,之前是返回下标为[1]的
现在返回的位置下标是[6]既然这样
那么代码就好写了~下面是代码,再也不用网上收费的 api 了


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=你要检测的域名

成品

https://github.com/likeyun/WxCheck

3718 次点击
所在节点    分享创造
15 条回复
aijialefu
2020-12-31 15:16:22 +08:00
老大,你是用手机访问,然后抓的包吗?
pytth
2020-12-31 16:09:06 +08:00
@aijialefu 用浏览器
aijialefu
2020-12-31 22:54:14 +08:00
@pytth 老大 我是小菜,跨年夜研究了一下,发现能复现你的过程,非常不错哦!感谢...之前研究过一次,走了不少弯路。
Mitt
2021-01-01 20:22:34 +08:00
备案拦截那个,其实是因为 http,如果是 https 就不拦了
hao888
2021-01-02 14:57:53 +08:00
谢谢老哥,马上部署使用下
pytth
2021-01-04 10:12:43 +08:00
@Mitt 这样吗?我去试试先
Kinnice
2021-01-04 10:31:42 +08:00
直接检测返回的 Location,不必要一直纠结于下标,下标可能会经常改变。
unicloud
2021-01-04 12:01:59 +08:00
厉害哦! 666
dorothyREN
2021-01-04 16:39:02 +08:00
我用 python 搞了一个,也是参考你这个的
soseek
2021-01-04 17:45:36 +08:00
我发现似乎有些域名在微信里可以打开,用这个却返回被封了
pytth
2021-01-04 18:00:13 +08:00
@soseek Github 里面有说为什么会这样,有些东西没有开启
haython
2021-01-04 18:32:47 +08:00
dorothyREN
2021-01-04 18:54:39 +08:00
Location 那个 url 里面 main_type=2 是被 ban 了,main_type=5 是提示浏览器访问
soseek
2021-01-06 14:45:17 +08:00
是这样判断,有些域名也是会误报的,不是说全部
summer2019
2021-01-07 11:01:45 +08:00
干,试了才发现老子博客被拦了。ctm 的腾讯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740525

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX