ASP.NET 获取客户端IP地址
2013-11-03 16:20
323 查看
我们用Request.ServerVariables( "REMOTE_ADDR ") 来取得客户端的IP地址,
但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。
要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables( "HTTP_X_FORWARDED_FOR ") 来读取。
不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables( "HTTP_X_FORWARDED_FOR ") 来读取客户端的真实IP,有些用此方法读取到的仍然是代理服务器的IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ( "HTTP_X_FORWARDED_FOR ") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
userip = Request.ServerVariables( "HTTP_X_FORWARDED_FOR ")
If userip = " " Then userip = Request.ServerVariables( "REMOTE_ADDR ") 即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,
如果没通过代理服务器,就取 REMOTE_ADDR 的值。
转自http://www.cnblogs.com/huacw/archive/2012/03/15/2398524.html
但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。
要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables( "HTTP_X_FORWARDED_FOR ") 来读取。
不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables( "HTTP_X_FORWARDED_FOR ") 来读取客户端的真实IP,有些用此方法读取到的仍然是代理服务器的IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ( "HTTP_X_FORWARDED_FOR ") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
userip = Request.ServerVariables( "HTTP_X_FORWARDED_FOR ")
If userip = " " Then userip = Request.ServerVariables( "REMOTE_ADDR ") 即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,
如果没通过代理服务器,就取 REMOTE_ADDR 的值。
转自http://www.cnblogs.com/huacw/archive/2012/03/15/2398524.html
相关文章推荐
- 星外ASP.Net的安全设置相关说明
- 程序中常用的种代码
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- ASP.NET页面间的传值的几种方法
- 入侵ASP.net网站的经验附利用代码
- asp.net OleDbCommand 的用法
- jquery调用asp.net 页面后台的实现代码
- ASP.NET MVC 4 捆绑和缩小实例介绍
- asp.net动态产生checkbox(数据源为DB或内存集合)
- Asp.Net 和 AJAX.Net 的区别第1/2页
- ASP.NET Cookie 操作实现
- asp.net SqlDataAdapter对象使用札记
- asp.net 执行事务代码
- 如何为asp.net网站项目添加子项目
- asp.net中url地址传送中文参数时的两种解决方案
- asp.net简化接收参数值的函数
- Asp.net第三方控件ComboBox组合框介绍
- asp.net gridview中用checkbox全选的几种实现的区别
- ASP.NET中在不同的子域中共享Session的具体方法
- asp.net Execl的添加,更新操作实现代码