微信域名防封检测的技术原理及实现方式

微信域名防封主要是通过技术手段来实现预防措施,网络上的什么不死域名完全是无稽之谈,没有哪家是可以做到完全防封的。

所以主要的还是让自己的域名推广效果更好一点,别被封了都不知道,以至于损失惨重。

想要继续在微信中做推广,做好域名防封工作是非常有必要的,否则域名一旦被封,自己却未能及时知晓,从而得不到及时处理,损失可想而知。

由此可见,做微信推广,一个能实时检测域名是否被微信屏蔽拦截的API接口是绝对必不可少的。

下面就简单介绍一下微信域名防封检测的技术原理及实现方式

原理

使用 Wireshark 抓包获取微信的域名拦截查询接口。

域名有如下几种状态:

域名能正常访问(未被微信拦截)
域名被微信拦截

非微信官方网页,继续访问将转换成手机预览模式(在公众号后台把域名添加到业务域名一般能解决这个问题)
据用户投诉及腾讯安全网址安全中心检测,该网页包含恶意欺诈内容,为维护绿色上网环境,已停止访问
网页包含诱导分享、关注等诱导行为内容,被多人投诉,为维护绿色上网环境,已停止访问

Demo

PHP 版

$url = “http://api.monkeyapi.com”;
$params = array(
‘appkey’ =>‘appkey’,//您申请的APPKEY
‘url’ =>‘www.monkeyapi.com’,//需要查询的网站
);

p a r a m s t r i n g = h t t p b u i l d q u e r y ( paramstring = http_build_query( paramstring=httpbuildquery(params);
c o n t e n t = C u r l ( content = Curl( content=Curl(url, $paramstring);
r e s u l t = j s o n d e c o d e ( result = json_decode( result=jsondecode(content, true);
if(KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ var_dump(result);
}else {
//请求异常
}

/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int i p o s t [ 是 否 采 用 P O S T 形 式 ] ∗ @ r e t u r n s t r i n g ∗ / f u n c t i o n C u r l ( ipost [是否采用POST形式] * @return string */ function Curl( ipost[POST]@returnstring/functionCurl(url, $params = false, $ispost = 0)
{
$httpInfo = array();
$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if ($ispost) {
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_URL, $url);
}else {
    if ($params) {
        curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
    } else {
        curl_setopt($ch, CURLOPT_URL, $url);
    }
}

$response = curl_exec($ch);
    if ($response === FALSE) {
    //echo "cURL Error: " . curl_error($ch);
    return false;
}

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;

}

python版

#!/usr/bin/python

-- coding: utf-8 --

import json, urllib
from urllib import urlencode

url = “http://api.monkeyapi.com”
params = {
“appkey”: “appkey”, # 您申请的APPKEY
“url”: “www.monkeyapi.com”, # 需要查询的网站
}
params = urlencode(params)
f = urllib.urlopen(url, params)
content = f.read()
res = json.loads(content)
if res:
print(res)
else:
print(“请求异常”)

你可能感兴趣的:(移动开发)