微信域名防封主要是通过技术手段来实现预防措施,网络上的什么不死域名完全是无稽之谈,没有哪家是可以做到完全防封的。
所以主要的还是让自己的域名推广效果更好一点,别被封了都不知道,以至于损失惨重。
想要继续在微信中做推广,做好域名防封工作是非常有必要的,否则域名一旦被封,自己却未能及时知晓,从而得不到及时处理,损失可想而知。
由此可见,做微信推广,一个能实时检测域名是否被微信屏蔽拦截的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(“请求异常”)