苏飞论坛

标题: C#提取开启代理/cnd服务后的客户端真实IP,通用方式 [打印本页]

作者: 站长苏飞    时间: 2015-3-31 14:35
标题: C#提取开启代理/cnd服务后的客户端真实IP,通用方式
大家一定有过这样的经历,当你的网站使用了代理 ,或者启用了Cdn就没有办法获取用户的真实IP


这个今天我提供一个通知的方法,保证大家能获取真实的客户端IP

[C#] 纯文本查看 复制代码
            string ip = string.Empty;
            string X_Forwarded_For = Request.Headers["X-Forwarded-For"];
            if (!string.IsNullOrWhiteSpace(X_Forwarded_For))
            {
                ip = X_Forwarded_For;
            }
            else
            {
                string CF_Connecting_IP = Request.Headers["CF-Connecting-IP"];
                if (!string.IsNullOrWhiteSpace(CF_Connecting_IP))
                {
                    ip = CF_Connecting_IP;
                }
                else
                {
                    ip = Request.UserHostAddress;
                }
            }


使用Jquery调用方法

[JavaScript] 纯文本查看 复制代码
  <script>
        $.cookie("mobile", 0, { domain: "jjoobb.cn" });
                 $.get("XXXX自己的网址", function (result) {
                    if (result) {
                                   if(result.toString().length > 10 && result.toString().tolocaleLowerCase().indexOf("object")>0)
                                   {
                       window.location.href = result;
                                   }
                }
    });
    </script>


result.toString().tolocaleLowerCase().indexOf("object")>0
这个是解决在火狐浏览器下出现问题的写法

作者: songwenqi    时间: 2015-3-31 15:31
强烈支持楼主ing……
作者: 水手    时间: 2015-4-1 09:34
干得漂亮,支持下。
作者: 站长苏飞    时间: 2017-10-18 14:24
[C#] 纯文本查看 复制代码
    /// <summary>
    /// IP操作帮助类
    /// 编码人:苏飞
    /// 编码时间:2015-05-18
    /// </summary>
    public class IPHelper
    {
        /// <summary>
        /// 提取开启代理/cdn服务后的客户端真实IP
        /// </summary>
        /// <returns></returns>
        public static string GetTrueIP()
        {
            string ip = string.Empty;
            string X_Forwarded_For =HttpContext.Current.Request.Headers["X-Forwarded-For"];
            if (!string.IsNullOrWhiteSpace(X_Forwarded_For))
            {
                ip = X_Forwarded_For;
            }
            else
            {
                string CF_Connecting_IP = HttpContext.Current.Request.Headers["CF-Connecting-IP"];
                if (!string.IsNullOrWhiteSpace(CF_Connecting_IP))
                {
                    ip = CF_Connecting_IP;
                }
                else
                {
                    ip = HttpContext.Current.Request.UserHostAddress;
                }
            }
            return ip;
        }
    }





欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4