网站策划专有技术,wordpress 商品模板,ps网页设计案例,竞价外包代运营公司因为要在项目中取到客户端IP,在网上搜了下相关资料,其中有一篇文章总结的比较详细,这里就把一些我用的上总结一下 方便以后查阅. 通常我们都通过下面的代码获得IP: string ip System.Web.HttpContext.Current.Request.UserHostAddress; 或 string ip System.Web.HttpCon… 因为要在项目中取到客户端IP,在网上搜了下相关资料,其中有一篇文章总结的比较详细,这里就把一些我用的上总结一下 方便以后查阅. 通常我们都通过下面的代码获得IP: string ip System.Web.HttpContext.Current.Request.UserHostAddress; 或 string ip System.Web.HttpContext.Current.Request.ServerVariables[REMOTE_ADDR]; REMOTE_ADDR 说明 访问客户端的 IP 地址。 此项信息用户不可以修改。如果真的给改了的话你也和服务器连接不了了服务器就是按照这个来与客户端建立连接并进行通讯的。实际我测试修改这个 ServerVariables 一点效果都没有。仍然获得是实际的值。 但如果用户使用了代理服务器上述代码获得的是代理服务器的IP地址如果用户使用了多个代理服务器则是到达服务器的最后一个代理服务器的IP地址。 如何绕过代理服务器获得用户真实的IP地址呢 private static string getIp() { if (System.Web.HttpContext.Current.Request.ServerVariables[HTTP_VIA] ! null) return System.Web.HttpContext.Current.Request.ServerVariables[HTTP_X_FORWARDED_FOR].Split(new char[] { , })[0]; else return System.Web.HttpContext.Current.Request.ServerVariables[REMOTE_ADDR]; } Request.ServerVariables[HTTP_VIA] ,ServerVariables[HTTP_X_FORWARDED_FOR],Request.ServerVariables[REMOTE_ADDR]的值分下面几种情况: 一、没有使用代理服务器的情况 REMOTE_ADDR 用户的 IP HTTP_VIA 没数值或不显示 HTTP_X_FORWARDED_FOR 没数值或不显示 二、使用透明代理服务器的情况Transparent Proxies REMOTE_ADDR 最后一个代理服务器 IP HTTP_VIA 代理服务器 IP HTTP_X_FORWARDED_FOR 用户的真实 IP 经过多个代理服务器时这个值类似如下203.98.182.163, 203.98.182.163, 203.129.72.215。 这类代理服务器还是将您的信息转发给您的访问对象无法达到隐藏真实身份的目的。 三、使用普通匿名代理服务器的情况Anonymous Proxies REMOTE_ADDR 最后一个代理服务器 IP HTTP_VIA 代理服务器 IP HTTP_X_FORWARDED_FOR 代理服务器 IP 经过多个代理服务器时这个值类似如下203.98.182.163, 203.98.182.163, 203.129.72.215。 隐藏了您的真实IP但是向访问对象透露了您是使用代理服务器访问他们的。 四、使用欺骗性代理服务器的情况Distorting Proxies REMOTE_ADDR 代理服务器 IP HTTP_VIA 代理服务器 IP HTTP_X_FORWARDED_FOR 随机的 IP 经过多个代理服务器时这个值类似如下203.98.182.163, 203.98.182.163, 203.129.72.215。 告诉了访问对象您使用了代理服务器但编造了一个虚假的随机IP代替您的真实IP欺骗它。 所以getIp()也不是最好的,因为可以编造一个假的IP,具体做法去看http://www.cnblogs.com/kingthy/archive/2007/11/24/970783.html总结: Request.UserHostAddress是可信的.但是这样的话却又获取不了那些已使用了代理服务器的用户真实IP地址(因为在这时Request.UserHostAddress获取到的就是这代理服务器的IP).. getIp()又有安全隐患 具体怎么做就要看自己选择了.参考资料:http://blog.joycode.com/ghj/archive/2008/02/20/114827.aspxhttp://www.cnblogs.com/kingthy/archive/2007/11/24/970783.html 转载于:https://www.cnblogs.com/yejun/archive/2008/02/26/1082485.html