<!-- /\* Font Definitions \*/ @font-face {font-family: 宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family: 微软雅黑; panose-1:2 11 5 3 2 2 4 2 2 4; mso-font-charset:134; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-2147483001 672087122 22 0 262175 0;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-520081665 -1073717157 41 0 66047 0;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-520092929 1073806591 9 0 415 0;} @font-face {font-family:"\\@微软雅黑"; panose-1:2 11 5 3 2 2 4 2 2 4; mso-font-charset:134; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-2147483001 672087122 22 0 262175 0;} @font-face {font-family:"\\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /\* Style Definitions \*/ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; mso-pagination:widow-orphan; layout-grid-mode:char; mso-layout-grid-align:none; font-size:11.0pt; font-family:"Tahoma","sans-serif"; mso-fareast-font-family: 微软雅黑; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} p {mso-style-priority:99; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family: 宋体; mso-bidi-font-family: 宋体;} span.hljs-number {mso-style-name:hljs-number; mso-style-unhide:no;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:11.0pt; mso-ansi-font-size:11.0pt; mso-fareast-font-family: 微软雅黑; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:0pt;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:11.0pt;} /\* Page Definitions \*/ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page WordSection1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} /\* List Definitions \*/ @list l0 {mso-list-id:279725072; mso-list-template-ids:-1797495592;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
微信域名屏蔽检测接口 微信域名检测接口工具
前段时间搞一个需求,是这样的,在微信中分享文章(广告),会被微信封,为了保证一个域名都能访问,需要检测是否被封,被封后就将该域名删除。为了防止被封,做了三级的域名跳转,一级使用一些必究权威网站的 url 跳转漏洞,二级用我们自己的,三级使用最终的广告域名。
起初以为会是 web 微信,或者微信公众号开发平台的某些位置能够检测,结果都失败了,检测不精确。后来回头测试上面的那个网站。在三台不同 ip 的电脑,同时检测域名时,只有一个能检测成功,或者一个都没成功。证明不能做并发操作。
于是就大概知道原理了。在微信客户端中模拟用户点击操作,查看是否被封。具体思路如下。
我使用的是天天模拟器(必须使用手机的微信,在 pc 端的微信中,.top 和.wang 的域名时检测不了的),php 作为后端服务器,用易语言从后端获取需要检测的域名,模拟复制到微信中发送后,点击域名打开,然后用易语言的找图功能,找红色感叹号的图,如果找到,说明域名被封,检测被封后请求后端删除地址。
ps:关于 url 跳转漏洞,相对大的网站,可能会在微信白名单里面,不容易被封,url 跳转漏洞的网站很多,也很容易找,具体怎么找。。。就不多说了。
关于并发操作,如果想做成接口对外开放,就要有足够多的并发。思路:建议使用 nodejs,php,python 也都可以,看个人喜好吧。
易语言使用服务器组件,监听一个端口。在服务器接收到查询请求时,提交给易语言,模拟器多开,使用多线程,就能同时检测多个域名了。
具体方案就是屏蔽掉违规内容,让腾讯无法检测到违规内容,最保险的最好还要用技术手段屏蔽掉用户投诉按钮。这样的一整套方案实施后,大家的域名肯定会得到很好的防护效果。同样给大家推荐一个比较不错的测试接口【monkeyapi】,希望能帮助到你。
- $url = “http://api.monkeyapi.com”;
- $params = array(
- ‘appkey’ =>’appkey’,_//__您申请的__APPKEY_
- ‘url’ =>’www.url.com’,_//__需要查询的网站_
- ); <<– 有不懂的加 q 咨询:510124737–>>
- $paramstring = http\_build\_query($params);
- $content = Curl($url, $paramstring);
10.$result = json\_decode($content, true);
11.if($result) {
- var_dump($result);
13.}else {
- //__请求异常
15.}
16.
17._/**_
- * _请求接口返回内容_
- * _@param_ string $url [ 请求的__URL__地址 ]
- * _@param_ string $params [__请
求的参数_]_
- * _@param_ int $ipost [ 是否采用__POST__形式 ]
- * _@return_ string
23._*/_
24.function Curl($url, $params = false, $ispost = 0)
25.{
- $httpInfo = array();
- $ch = curl_init();
28.
- 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);
- }
- }
45.
- $response = curl\_exec($ch);
- if ($response === FALSE) {
- //echo “cURL Error: ” . curl_error($ch);
- return false;
- }
51.
- $httpCode = curl\_getinfo($ch, CURLINFO_HTTP_CODE);
- $httpInfo = array\_merge($httpInfo, curl_getinfo($ch));
- curl_close($ch);
- <<– 有不懂的加 q 咨询:510124737–>>
r