Mr. Lei

检测域名是否被微信拦截及链接跳转
前言 最近在接一位老板的活,主要做链接推广的,域名经常会被微信封掉,封掉只能再换域名。 初步解决方法也很low...
扫描右侧二维码阅读全文
07
2019/09

检测域名是否被微信拦截及链接跳转

前言

最近在接一位老板的活,主要做链接推广的,域名经常会被微信封掉,封掉只能再换域名。
初步解决方法也很low,就是多买些域名绑定到页面,一个封了,马上换另一个域名。
这样方法极为不方便,如果被封了也没有及时发现,还在推的话是很烧钱的(虽然不是我的钱),除非时时刻刻人工观察。
下面就记录一下解决此问题的方法,或许以后我也用的上呢

一、正题开始

准备好多个域名,一个主域名,其他随意,只要微信没拦截的都可以,主要是主域名要好,最好用了很多年对老域名,权重高的。
主域名(即推广时放的域名链接),别的域名都用来做跳转。
步骤:点击主域名-检测是否被拦截-跳转到未拦截到域名

二、接口

问题来了,我怎么知道域名被没被拦截,难道一个个看吗?当然No!
这里准备了一些我网上收集到的免费微信检测接口,如下:
http://wxcheck.wxjump-api.cn/926pzfzo/wxcheck?url=域名
http://wxcheck.wxjump-api.cn/eildqwfn/wxcheck?url=域名
http://check.uomg.com/api/urlsec/vx?domain=域名
http://www.yumingjiance.net/index.php?s=/index/ck_weixin&domain=域名
https://wx.horocn.com/api/v1/wxUrlCheck?need_icp=yes&api_token=9e4c4a1f51153e45e4ca2bd88d8b4afd&req_url=域名

以上接口均返回json格式的数据,先随便选一个接口看一下json数据
http://wxcheck.wxjump-api.cn/926pzfzo/wxcheck?url=www.lxtian.com

得到以下数据

{"status":1,"msg":"域名正常","tips":"33ms","url":"www.lxtian.com"}

status => 状态值:1表示正常 0表示被拦截

我就以status来判断。

三、代码块

比如ssss.com是主域名,aaa.com、bbb.com、ccc.com是跳转域名

<script src="./js/jquery.min.js"></script>
<script>
//判断是否微信打开
  function isWeixin() {
    var ua = navigator.userAgent.toLowerCase();
    if (ua.match(/MicroMessenger/i) == "micromessenger") {
      return true;
    } else {
      return false;
    }
  }
    var isWeixin = isWeixin();
//域名数组,这里填上跳转的域名
  var urls = ["aaa.com","bbb.com", "ccc.com"];

//检测域名是否被微信拦截
  function test(i) {
    //var r = false;
    $.ajax({
      type: "GET",
      dateType: "JSON",
      data: {url: urls[i]},
      url: "http://wxcheck.wxjump-api.cn/926pzfzo/wxcheck",
      async: false,//必须设置为false,否则无法传出r的值
      success: function (data) {
        var status = JSON.parse(data).status;//获取状态值
        if (status == 1) r = true;
      }
    });
    return r;
  }

var isNormal=true;//默认true,如副域名全封则自动为false

顺序跳转

//遍历副域名只要检测到1个正常,则跳转并停止遍历
if(isDomain&&isWeixin){
  for (var i = 0, r = false; i < urls.length; i++) {
    test(i);
    //console.log(r);
    if (r) {
      window.location.href = `http://${urls[i]}?r=${Math.random().toString(36).substr(2,4)}`;
      break;
    }else{
      isNormal=false;
    }
  }
}

只要在微信端打开sss.com,就会跳转aaa.com,如aaa.com被封则跳转bbb.com,以此类推。

随机跳转


if(isWeixin){
  var dname=[];
  for (var i = 0, r = false; i < urls.length; i++) {
    test(i);
    //console.log(r);
    //如果检测的域名正常则把该域名追加到dname
    if (r) {
      dname.push(urls[i]);//追加
    }
  }
  //判断如果dname不为空
  if(!dname.length==0){
    isNormal=!dname.length==0;
    //随机获取dname下标
    var dname_index = Math.floor(Math.random() * urls.length);
    //随机获取dname的一个值
    var dname_tz = dname[dname_index];
    window.location.href = `http://${dname_tz}?r=${Math.random().toString(36).substr(2,4)}`;
  }
}
</script>

只要在微信端打开sss.com,就会随机进行跳转aaa.com或aaa.com或bbb.com,被拦截的域名则不会跳转
额,和顺序跳转相比较,随机跳转效率较差,因为每次都需要把副域名遍历完毕。

结束

以上方法都存在一个缺点,即副域名域名过多,会影响打开页面的速度,不适用于过多的副域名,否则页面加载会很慢
方法较笨,小弟目前也只能想这出了,如有不足请多多指导。。

Last modification:October 31st, 2019 at 03:30 pm

Leave a Comment