zyl122589 发表于 2020-5-14 19:06

微信域名检测源码(适合各种语言)

原理:利用微信重定向判断域名是否被封
javaer直接复制代码就可以运行
检测的域名必须添加 HTTP/HTTPS:
Pattern pattern = compile("^({2}://|{2}://)((+).)+()+$");
    boolean matches = pattern.matcher(url).matches();
    if(!matches){
      return BaseResult.failed().msg("不合法的链接,请填写完整的链接地址(http://xxxx.com)!");
    }

话不多说直接上代码:

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.Method;

/**
* @Title: WxUrlCheckUtil.java
* @Description: TODO
* @AuThor Denticle
* @date 2020/5/14 16:32
* @version V1.0
*/
public class WxUrlCheckUtil {

private static final String CHECK_URL = "http://mp.weixinbridge.com/mp/wapredirect?url=%s&action=appmsg_redirect&uin=&biz=MzUxMTMxODc2MQ==&mid=100000007&idx=1&type=1&scene=0";

public static boolean checkUrl(String url){
    String curl = String.format(CHECK_URL,url);
    HttpRequest request = new HttpRequest(curl);
    request.header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36");
    request.method(Method.GET);
    HttpResponse response = request.execute();
    String location = response.header("Location");
    if(location.equals(url)){
      return true;
    }else if(location.contains("https://weixin110.qq.com")){
      return false;
    }
      throw new IllegalArgumentException("未知错误,请重新检测");
}

public static void main(String[] args) {
    try {
      if(checkUrl("https://www.xxx.com")){
      System.out.println("恭喜域名正常!");
      }else {
      System.out.println("域名被封了!");
      }
    }catch (Exception e){
      e.printStackTrace();
    }
}
}

zyl122589 发表于 2020-5-15 09:01

小非凡 发表于 2020-5-14 19:36
大佬,JS怎么写,这代码看不懂啊
给你说下思路吧,请求http://mp.weixinbridge.com/mp/wapredirect?url=%s&action=appmsg_redirect&uin=&biz=MzUxMTMxODc2MQ==&mid=100000007&idx=1&type=1&scene=0微信会进行重定向,只要你能拿到重定向的地址就能判断,重定向到你的域名那就是正常,重定向到weixin110的地址那就是被封了

A00 发表于 2020-5-14 19:26

谢谢分享

小非凡 发表于 2020-5-14 19:36

lennydada 发表于 2020-5-14 21:10

本帖最后由 lennydada 于 2020-5-14 21:18 编辑

小非凡 发表于 2020-5-14 19:36
大佬,JS怎么写,这代码看不懂啊
http://mp.weixinbridge.com/mp/wapredirect?url=这里是链接


把这里是链接   替换成你要检测的链接就行了记得带上 http或https

udada 发表于 2020-5-14 21:28

lennydada 发表于 2020-5-14 21:10
http://mp.weixinbridge.com/mp/wapredirect?url=这里是链接




不行呀 直接转到了要检测的链接

lennydada 发表于 2020-5-14 22:14

小非凡 发表于 2020-5-14 19:36
大佬,JS怎么写,这代码看不懂啊

直接GET就行了。如果是屏蔽的会跳转到 weixin110.qq.com

如果是正常的会直接访问该检测域名

我不用 js 具体使用方法无法给出

thinkingbullet1 发表于 2020-5-14 23:48

学习了 感谢分享

酷鸟 发表于 2020-5-15 00:33

这种接口 很多地方卖300一个月呢

星耀蓝优 发表于 2020-5-15 02:01

PHP的话,这样写。
$api = get_headers('http://mp.weixinbridge.com/mp/wapredirect?url='.$_REQUEST['url']);
if($api !== 'Location: '.$_REQUEST['url'].''){
        echo '域名被封';
}else{
        echo '域名正常';
}
页: [1] 2
查看完整版本: 微信域名检测源码(适合各种语言)