微信域名防封源码给大家奉上

我们经常被一件事情困扰那就是自己的域名在微信QQ中被屏蔽拦截,导致自己的链接无法打开,这可苦了好多做推广的朋友导致之前的流量损失,微信域名防封是指通过技术手段来实现预付措施。一切说自己完全可以防封的那都是不可能的。一切说什么免死域名不会死的那也是吹牛逼的。我们要做的是让我们的推广域名寿命更长一点,成本更低一点。很多的网站被微信的检测系统封杀,有的是确实违规,有的则是被误报了。出现这样的问题,网站的流量瞬间就清零了,对站长来说是天塌一样的打击,那我们有没有办法能够有效的防止域名被微信封杀呢?听我慢慢道来微信域名被封的原理和防封技术:
网站拦截离不开的原因有:
建立虚假广告官网,网站中包含大量违规内容和弹出广告,是非常容易被安全卫士所拦截。
网站被黑:目标被***被同行所***。
我们一般都不会说域名百分之百不会被拦截的,如果有人和你说域名百分百不会拦截的肯定都是说大话的,一个域名和技术能防多久跟微信QQ更新最新的机制,还有和你的访问量和你的被举报量有很主要的关系,所以不同的客户不同的行业是不一样的。
微信域名防封源码给大家奉上
1 ,微信检测接口+ 域名轮换系统
你需要有一个微信域名检测接口,配置程序,用两套域名,分享出去的域名是A, 点开之后跳到B 域名,分享前确定一下没有被封,只要B 域名准备多个,利用域名检测接口可以轻松自动切换。检测接口最快可以开发到1 毫秒检测,并且出现问题会有邮件通知,不会影响到自己的运营。
2 ,域名跳转防封
这种相对于就比较简单也比较适用,也需要准备两域名,一个用于微信展示的页面A ,另一个是落地页B ,用户在微信点击A ,然后立刻唤醒手机浏览器,打开网页,好处在于
1.落地域名多层加密使用,减少域名的浪费和被封杀;
2.保护原始推广落地页不容易被举报和发现,延长原始推广落地页寿命;
3 ,中间落地域名被封只需重新更换,不影响防封短链接的打开,减少流量浪费。

namespace ConsoleAPI{
    class Program{
        static void Main(string[] args){
            string url = "http://api.monkeyapi.com";

            var parameters = new Dictionary<string, string>();

            parameters.Add("appkey" , "appkey"); //您申请的APPKEY
            parameters.Add("url" , "www.monkeyapi.com"); //需要查询的网站

            string result = sendPost(url, parameters, "post");

            // 代码中JsonObject类下载地址:http://download.csdn.net/download/gcm3206021155665/7458439
            JsonObject newObj = new JsonObject(result);
            String errorCode = newObj["error_code"].Value;

            if (errorCode == "0")
            {
                Debug.WriteLine("成功");
                Debug.WriteLine(newObj);
            }
            else
            {
                //Debug.WriteLine("请求异常");
                Debug.WriteLine(newObj["error_code"].Value+":"+newObj["reason"].Value);
            }
        }

        /// <summary>
        /// Http (GET/POST)
        /// </summary>
        /// <param name="url">请求URL</param>
        /// <param name="parameters">请求参数</param>
        /// <param name="method">请求方法</param>
        /// <returns>响应内容</returns>
        static string sendPost(string url, IDictionary<string, string> parameters, string method){
            if (method.ToLower() == "post")
                {
                    HttpWebRequest req = null;
                    HttpWebResponse rsp = null;
                    System.IO.Stream reqStream = null;
                try
                {
                    req = (HttpWebRequest)WebRequest.Create(url);
                    req.Method = method;
                    req.KeepAlive = false;
                    req.ProtocolVersion = HttpVersion.Version10;
                    req.Timeout = 60000;
                    req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
                    byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8"));
                    reqStream = req.GetRequestStream();
                    reqStream.Write(postData, 0, postData.Length);
                    rsp = (HttpWebResponse)req.GetResponse();
                    Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
                    return GetResponseAsString(rsp, encoding);
                }
                    catch (Exception ex)
                {
                    return ex.Message;
                }
                finally
                {
                    if (reqStream != null) reqStream.Close();
                    if (rsp != null) rsp.Close();
                }
            }

猜你喜欢

转载自blog.51cto.com/14933171/2546117