首页 新闻 搜索 专区 学院

c#获取客户端IP为何得到的值是服务器DNS内网IP地址

0
悬赏园豆:5 [已解决问题] 解决于 2008-05-29 08:13
<P>1.string&nbsp;struserIP&nbsp;=&nbsp;System.Web.HttpContext.Current.Request.UserHostAddress <BR>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;GetClientIP() <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;result&nbsp;=&nbsp;HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(null&nbsp;==&nbsp;result&nbsp; ¦ ¦&nbsp;result&nbsp;==&nbsp;String.Empty) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(null&nbsp;==&nbsp;result&nbsp; ¦ ¦&nbsp;result&nbsp;==&nbsp;String.Empty) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;HttpContext.Current.Request.UserHostAddress; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <BR>得到的数据是服务器内网的IP地址,为何?2种方式得到的值是一样。 <BR>哪位朋友知道,不胜感激。</P> <P>服务器是通过DNS中转的,得到的是服务器DNS的内网IP地址。 <BR>为何获取不了客户端的IP。</P>
★金★的主页 ★金★ | 初学一级 | 园豆:190
提问于:2008-05-16 09:35
< >
分享
最佳答案
0
用下面的方法试试,应该是Header的key不一样。 请看下面文章 http://www.cnblogs.com/yukaizhao/archive/2008/05/16/client_real_ip.html
玉开 | 大侠五级 |园豆:8822 | 2008-05-16 09:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册