首页 新闻 会员 周边 捐助

Request.UserHostAddress获取到的是外网的IP,怎么获取到客户端的IP

0
悬赏园豆:60 [待解决问题]

现在要做IP限制,Request.UserHostAddress获取客户端的IP,但是现在这个方法获取到的就是外网的IP,怎么获取到真正的客户端的IP地址,在有外网的情况下!

天籁的主页 天籁 | 初学一级 | 园豆:45
提问于:2011-11-14 10:04
< >
分享
所有回答(6)
1

ASP.NET是没有办法的,同一局域网内的所有机器访问你的站点,Request.UserHostAddress都是同样的(即这些机器公用的外网IP),这些机器他们并没有“自己的”(也就是你所谓的“真正"的,其实这么说也不太准确)外网IP。

水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-14 10:11
0

试试这里的方法:

ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
// If there is no proxy, get the standard remote address
if ((ip == null) || (ip == "") || (ip.ToLower() == "unknown"))
ip = Request.ServerVariables["REMOTE_ADDR"];
dudu | 园豆:30939 (高人七级) | 2011-11-14 10:34

这个获取到的是什么?比如,局域网里5个人,IP分别是192.168.0.1~192.168.0.5,公用一个adsl上网,外网ip是61.129.33.54,这个方法返回的是啥?

支持(1) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-14 11:45

@水牛刀刀: Request.ServerVariables["HTTP_X_FORWARDED_FOR"]应该返回的是61.129.33.54

支持(0) 反对(1) dudu | 园豆:30939 (高人七级) | 2011-11-14 11:58

@dudu: 那还不是一样的?我现在就是想要获得比如说192.168.0.1这个值怎么获得?

支持(1) 反对(0) 天籁 | 园豆:45 (初学一级) | 2011-11-14 16:32
0

顶顶顶顶搜索 | 园豆:267 (菜鸟二级) | 2011-11-14 10:56
1

以后不要问这类问题,上面的都是错的.

 

本地的IP你要获取,必须通过本地的代码.js做不到,写一个插件.

[秦时明月] | 园豆:738 (小虾三级) | 2011-11-14 11:22

... 太牛X了

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-14 11:39

你有写过这样的控件吗?如果有的话能不能共享下?

支持(0) 反对(0) 天籁 | 园豆:45 (初学一级) | 2011-11-14 16:31
2

.net好像是获取不到局域网真实的IP地址的,大部分都是获取局域网对外的ip地址。

HorsonJin | 园豆:158 (初学一级) | 2011-11-16 15:03
0

http://www.cnblogs.com/yilin/archive/2009/09/15/1567332.html

这个是通过用c#创建ACTIVEX,获取客户端时间的。可以参考的做一个。

chenping2008 | 园豆:9836 (大侠五级) | 2011-11-17 09:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册