微信域名检测接口实现的原理

随着微信域名检测的普及,越来越多的人重视这方面有个客户是这样跟我说的,他现在用的那个检测有频率限制 最快只能一秒检测一个, 并发多的时候是不能边跳转边检测的, 只能写到计划任务里面,像他这样的情况,做的检测效果并不明显,有时候所有域名一下被封,可见反应速度直接影响到你后面防封的效果。这就是个人单独研发的接口,只能提供1s每次的服务,对于量少的客户还可以,但是只要量大的话这样的反应速度是远远不够的,速度越快对服务器的要求越高,因为反应速度越快服务器的负载越大。

我们猴子数据有专门的微信域名检测,最快反应速度可以达到2ms,甚至可以支持不限频率,当然这对服务器的要求更高,而且我们采用了官方协议检测,并且备用第三方协议检测。猴子数据是以公司为依托,有着专业的技术团队,最快反应速度可以达到2ms每次,不限域名,不限频率,不限并发,进行实时检测结果,并及时解决问题。
下面分享一段微信域名检测api接口代码供大家参考:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

public class Demo {
  public static final String DEF_CHATSET = "UTF-8";
  public static final int DEF_CONN_TIMEOUT = 30000;
  public static final int DEF_READ_TIMEOUT = 30000;
  public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";

  public static void mobileQuery(){
      String result =null;
      String url ="http://api.monkeyapi.com";//请求接口地址
      Map params = new HashMap();//请求参数
        params.put("appkey" , "appkey");//您申请的APPKEY
        params.put("url" , "www.url.com");//需要查询的网站
      try {
          result = net(url, params, "GET");
          JSONObject object = JSONObject.fromObject(result);
          if(object.getInt("error_code")==0){
            System.out.println(object.get("result"));
          }else{
            System.out.println(object.get("error_code")+":"+object.get("reason"));
          }
      } catch (Exception e) {
        e.printStackTrace();
      }
  }

  public static void main(String[] args) {

  }

  /**
   *
   * @param  strUrl 请求地址
   * @param  params 请求参数
   * @param  method 请求方法
   * @return    网络请求字符串
   * @throws  Exception
   */
  public static String net(String strUrl, Map params,String method) throws Exception {
     HttpURLConnection conn = null;
     BufferedReader reader = null;
     String rs = null;
     try {
        StringBuffer sb = new StringBuffer();
        if(method==null || method.equals("GET")){
          strUrl = strUrl+"?"+urlencode(params);
        }
        URL url = new URL(strUrl);
        conn = (HttpURLConnection) url.openConnection();
        if(method==null || method.equals("GET")){
           conn.setRequestMethod("GET");
        }else{
           conn.setRequestMethod("POST");
           conn.setDoOutput(true);
        }
        conn.setRequestProperty("User-agent", userAgent);
        conn.setUseCaches(false);
        conn.setConnectTimeout(DEF_CONN_TIMEOUT);
        conn.setReadTimeout(DEF_READ_TIMEOUT);
        conn.setInstanceFollowRedirects(false);
        conn.connect();
        if (params!= null && method.equals("POST")) {
           try {
              DataOutputStream out = new DataOutputStream(conn.getOutputStream());
              out.writeBytes(urlencode(params));
           } catch (Exception e) {
              // TODO: handle exception
              e.printStackTrace();
           }
        }
       InputStream is = conn.getInputStream();
       reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
       String strRead = null;
       while ((strRead = reader.readLine()) != null) {
         sb.append(strRead);
       }
       rs = sb.toString();
     } catch (IOException e) {
       e.printStackTrace();
     } finally {
       if (reader != null) {
          reader.close();
       }
       if (conn != null) {
          conn.disconnect();
       }
     }
    return rs;
  }

  //将map型转为请求参数型
  public static String urlencode(Map<String,String> data) {
       StringBuilder sb = new StringBuilder();
       for (Map.Entry i : data.entrySet()) {
           try {
              sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
           } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
           }
       }
       return sb.toString();
  }

}

原文地址:https://blog.51cto.com/14302160/2395003

时间: 2024-08-26 09:24:04

微信域名检测接口实现的原理的相关文章

微信域名检测接口(含PHP、Python调用演示步骤)

微信域名检测接口是腾讯官方发布的api接口,调用检测接口即可返回域名在微信内的生存状态,如果已被拦截返回结果提示“域名被封”,如果未被拦截则返回结果提示“域名正常”. 微信域名检测接口(官方) http://www.xiaocaoff.cn/weixin/check-api.php?url=http://www.baidu.com 接口使用说明 1.在线使用 将api接口地址中的 “http://www.baidu.com” 换成你需要检测的域名,然后复制地址前往浏览器粘贴打开即可返回结果. 2

如何检测域名是否被微信屏蔽 微信域名检测接口API是如何实现

微信域名检测技术的主要用户是微信域名防封,大家知道拼多多这种网站,靠诱导分享方式在微信里面摇身一变已经估值160亿美元,身价仅次于京东了 ,这是何等的速度,简直是惊为天人,but 如果你想玩微信病毒营销,腾讯不封死你才怪,早期微信抓分享不严格,现在很严,拼多多是腾讯干儿子自然不封,任你举报到死他也依然不死.那我们怎么在微信里面玩分享和推广,怎么赚钱呢?那就是防止被微信封掉,其中有一个必备的技术是微信域名实时检测技术. 其实技术是一层窗户纸,说透了很简单.我在这里主要抛砖引玉,剩下的靠客官的悟性了

微信检测域名防封系统 如何调用微信官方的微信域名检测接口API

经常遇到一些公司做活动因为一个 h5 页面被分享多次遭到微信拦截,导致所有的分享都白做了. 所以就有一个想法,能不能实时监测这个 h5 的 URL 一单发现被拦截 就立马更换 域名或 url http://qbview.url.cn/getResourceInfo?appid=31&url=http://www.wangzhesha.com 参数 appid= 31 默认的 url 需要检查的url 如果被检查的 URL 没有被拦截,则会直接跳转到目标 url 上,如果被拦截了,则给出拦截提示,

微信域名屏蔽检测接口 微信域名检测接口工具

前段时间搞一个需求,是这样的,在微信中分享文章(广告),会被微信封,为了保证一个域名都能访问,需要检测是否被封,被封后就将该域名删除.为了防止被封,做了三级的域名跳转,一级使用一些必究权威网站的url跳转漏洞,二级用我们自己的,三级使用最终的广告域名. 起初以为会是web微信,或者微信公众号开发平台的某些位置能够检测,结果都失败了,检测不精确.后来回头测试上面的那个网站.在三台不同ip的电脑,同时检测域名时,只有一个能检测成功,或者一个都没成功.证明不能做并发操作. 于是就大概知道原理了.在微信

怎样判断网址是否被微信封 微信域名检测接口的实现

本人在做接口测试的过程中,遇到了一个问题,有好几个需要测试的环境,配置了不同的域名但是每个域名下需要测试的接口不同,但是接口的用例都是公用的,经过仔细学习了一下java代码的执行顺序之后,终于想到了一个办法,相当于写一个配置类,专门配置不同的域名和域名下的接口. 首先分享一下工程目录: 前三个包都是不同环境下的测试类内容非常简单,base是配置文件,case是执行所有方法,test调试接口的类. 分享一个测试代码里面的public属性设置: public static List<Map<Str

微信域名检测防封,基于微信域名检测接口的跳转系统

先到www.weixin139.com开通接口权限 新建一个url.html代码如下 访问地址:url.html?user=yourname(此处为你的用户名) <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=U

域名是否被微信拦截,微信域名检测api接口分享

微信域名检测接口作用是什么? 在微信中做推广的过程中,因为微信的限制比较严格,所以经常会发现域名被微信查封无法访问的问题,出现这一问题之后,自己的业务往往会受到巨大影响.使用微信域名检测接口是为了方便检测自己的域名状态,及时获取是否被微信查封. 微信域名检测接口(官方) http://www.xiaohejc.cn/check_api.php?url_long=http://www.baidu.com 域名监控通知工具: http://www.xiaohejc.cn 接口使用说明 1.在线使用

微信(QQ)域名检测接口,官方API的请求示例与使用详解

微信域名检测接口和QQ域名检测接口API皆是由腾讯官方对外公布的域名查询接口,通过接口可实时查询域名在微信和QQ中的状态信息.如果状态异常则返回结果提示“域名被封”,如果未有异常则返回结果提示“域名正常”. 微信(QQ)域名检测接口 请求地址1:http://www.60ht.cn/wxcheck/api.php?url=http://www.baidu.com 请求地址2:http://www.xiaocaoff.cn/api/check.php?url=http://www.baidu.co

分享 - 微信域名检测API接口

微信域名检测接口是腾讯官方对外公布的域名查询api,请求api接口可实时查询域名在微信中的状态信息.如果状态异常则返回结果提示“域名被封”,如果未有异常则返回结果提示“域名正常”. 微信域名检测接口 格式一:http://www.60ht.cn/wxcheck/api.php?url=http://www.baidu.com 格式二:http://www.xiaocaoff.cn/api/check.php?url=http://www.baidu.com 格式三:http://www.dxch