[已解决问题] c#获取客户端IP为何得到的值是服务器DNS内网IP地址
提问时间: 2008-05-16 09:35
悬赏分:5 浏览:313 次

1.string struserIP = System.Web.HttpContext.Current.Request.UserHostAddress
2.        private string GetClientIP()
        {
            string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (null == result  ¦ ¦ result == String.Empty)
            {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            if (null == result  ¦ ¦ result == String.Empty)
            {
                result = HttpContext.Current.Request.UserHostAddress;
            }
            return result;
        }
得到的数据是服务器内网的IP地址,为何?2种方式得到的值是一样。
哪位朋友知道,不胜感激。

服务器是通过DNS中转的,得到的是服务器DNS的内网IP地址。
为何获取不了客户端的IP。


提问者:★金★ - 初学一级
最佳答案
用下面的方法试试,应该是Header的key不一样。
请看下面文章
http://www.cnblogs.com/yukaizhao/archive/2008/05/16/client_real_ip.html
2008/5/16 9:39:51 回答者:玉开


提问者对于答案的评价:无满意答案
评论
2个月前   ★金★ :
还是内网的IP地址
2个月前   ★金★ :
还是不行啊,获取的是服务器DNS的内部IP。
2个月前   玉开 :
那就应该是DNS转发的设置问题了,转发时没有设置添加对应的Http头,找一下看看有没有地方可以设置。
2个月前   ★金★ :
没有找到对应的HTTP头,DNS只有设置域名对应的内网IP地址。
2个月前   ★金★ :
估计是啊,但是怎么设置?
2周前   ★金★ :
已经解决,是ISA防火墙设置问题。
http://www.cnblogs.com/cnaspnet/archive/2008/07/05/1236181.html
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除