ASP.NET 获取客户端IP地址(在透明的网络代理中)

夏至如沫 发布于 2013/08/09 13:51
阅读 742
收藏 0

网络环境是这样的,用交换机组网,该网络多个终端同时访问网站,如何在服务中区分这些终端,获取IP呢?Request.UserHostAddress 只能获取到可信的交换机IP,不能穿过代码获取终端的IP地址。我在百度中找到下面的代码:

/// <summary>
        /// 获取绕过代理的IP
        /// </summary>
        /// <returns></returns>
        public string GetPrivateIP
        {
            get
            {
                string clientIP;
                if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))
                    clientIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                else
                    clientIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                if (string.IsNullOrEmpty(clientIP))
                    clientIP = Request.UserHostAddress;
                return clientIP;
            }
        }


但是依旧无效,拜请哪位大神给指条明路,入门2年还是菜鸟。。。OS的大大们,给个真相吧

加载中
0
假正经哥哥
假正经哥哥
有可能交换机直接把终端的ip 请吃掉了。 需要交换机设置下。
夏至如沫
夏至如沫
回复 @假正经哥哥 : 那谢谢了,这样有效就放心了
假正经哥哥
假正经哥哥
回复 @苗帅涛 : 肯定的。
夏至如沫
夏至如沫
回复 @假正经哥哥 : 也就是说这种写法正常配置时是有效的?
假正经哥哥
假正经哥哥
回复 @苗帅涛 : 干嘛和用户解释?解决问题啊,找网络管理员把交换机设置正确
夏至如沫
夏至如沫
你觉得能这么跟客户解释吗
返回顶部
顶部