您的位置:首页 > 移动开发 > 微信开发

QQ/微信里被禁止访问的网页怎么处理 如何检测域名是否被微信封

2019-01-15 13:28 621 查看

第一:微信域名检测+微信域名切换
你需要有一个微信域名检测接口,自己开发或是购买都可以。配置好你的接口请求程序,准备2套域名A和B。比如说分享出去的域名是A,这里面A被称作是主域名。点开后跳到B,跳转之前检测一下B有没有被封,这里面的B就称作是落地域名。通常情况下落地域名B需要准备几十甚至上百个,利用域名检测接口可以轻松实现被封自动切换。检测接口这个开发文档能够最快能达到1毫秒/请求来检测(当然一般也不需要这么快,请求频率越高对服务器的要求越高)。并且出现问题会及时进行通知,进行备用域名跳转,保证落终是可以访问的。

 


第二:多级矩阵跳转
短网址(分享出去的)→主域名→二级域名→三级域名→四级域名(着陆页)
在这里需要注意的事,着陆页的域名尽可能长一点。比如主域名是”abc.com“。那到着陆页可能要做到”dfdfdjdjjddjfjdfdjfdjjdfjdjdfjj.wx.qq.abc.com/1.html“。把”1.html“做成动态的,让每一次访问都不一样。为什么要做成动态的呢?因为我们在实践过程中发现,有时候不封域名封链接。但是这种方式还是会要用到第一种检测+切换的接口。
分享一段微信域名防封切换的api接口文档:

  1. $url = "http://api.monkeyapi.com";
  2. $params = array(
  3. 'appkey' =>'appkey',//您申请的APPKEY
  4. 'path' =>'/home',//您需要切换的路由
  5. );
  6.  
  7. $paramstring = http_build_query($params);
  8. $content = monkeyCurl($url, $paramstring);
  9. $result = json_decode($content, true);
  10. if($result) {
  11.     var_dump($result);
  12. }else {
  13.     //请求异常
  14. }
  15.  
  16. /**
  17.     * 请求接口返回内容
  18.     * @param    string $url [请求的URL地址]
  19.     * @param    string $params [请求的参数]
  20.     * @param    int $ipost [是否采用POST形式]
  21.     * @return    string
  22. */
  23. function monkeyCurl($url, $params = false, $ispost = 0)
  24. {
  25.     $httpInfo = array();
  26.     $ch = curl_init();
  27.  
  28.     curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
  29.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
  30.     curl_setopt($ch, CURLOPT_TIMEOUT, 60);
  31.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  32.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  33.     if ($ispost) {
  34.         curl_setopt($ch, CURLOPT_POST, true);
  35.         curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
  36.         curl_setopt($ch, CURLOPT_URL, $url);
  37.     }else {
  38.         if ($params) {
  39.             curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
  40.         } else {
  41.             curl_setopt($ch, CURLOPT_URL, $url);
  42.         }
  43.     }
  44.  
  45.     $response = curl_exec($ch);
  46.         if ($response === FALSE) {
  47.         //echo "cURL Error: " . curl_error($ch);
  48.         return false;
  49.     }
  50.  
  51.     $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  52.     $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
  53.     curl_close($ch);
  54.     return $response;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: