页面增加CDN缓存后获取用户真实IP

页面增加CDN缓存后获取用户真实IP

 public string GetUserIp()
       {
           string ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
           if (string.IsNullOrEmpty(ip) || ip.ToLower().IndexOf("unknown", System.StringComparison.Ordinal) > -1)
           {
               ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
           }
           else
           {
               if (ip.IndexOf(',') > -1)
               {
                   ip = ip.Substring(0, ip.IndexOf(','));
               }
               if (ip.IndexOf(';') > -1)
               {
                   ip = ip.Substring(0, ip.IndexOf(';'));
               }
           }

           Regex regex = new Regex("[^0-9.]");
           if (string.IsNullOrEmpty(ip) || regex.IsMatch(ip))
           {
               ip = HttpContext.Current.Request.UserHostAddress;
               if (ip == null || ip.Length == 0 || regex.IsMatch(ip))
               {
                   ip = "0.0.0.0";
               }
           }
           return ip;
       }
原文地址:https://www.cnblogs.com/everyone/p/2933547.html