我尝试从下面提到的方法中获取ip
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] &
Request.UserHostAddress & Request.ServerVariables["REMOTE_ADDR"]
问题在于Request.ServerVariables["REMOTE_ADDR"]
返回代理服务器ip和
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
可以被篡改我想要一个万无一失的获取客户端ip的方法,这个方法无法被篡改,在这方面的任何帮助都将受到高度赞赏。
答案 0 :(得分:9)
我想要一个万无一失的获取客户端ip的方法,这种方法无法被篡改
不存在。遗憾。
问题是Request.ServerVariables [“REMOTE_ADDR”]返回代理服务器ip
假设用户位于公司代理服务器后面。您将获得此代理IP,其中所有意图和目的 是最接近用户IP的 。我的意思是,如果你得到了用户的最终内部IP,如192.168.0.15对你有什么用处?
答案 1 :(得分:2)
除了@Developer Art之外,还要考虑互联网上的许多IP地址都是从私有类“C”地址代理的。例如,虽然我家的有线调制解调器有一个公共IP地址,但我的路由器提供了内部C类地址的代理(例如192.168.1.123)。
最后......鉴于192.和10.地址是大多数消费者路由器的标准,大多数用户将使用以这两个号码中的一个开头的地址,并且不会衡量,是独一无二的。