当客户端用户登录网站时,可以通过Request.ServerVariables("REMOTE_ADDR")获得IP地址。但这样获得的IP地址不一定是客户端的真实IP地址,如果客户端使用代理服务器上网,得到的就是代理的IP地址。如果我们对常见的方法做一下改动,就能得到客户端的真实IP地址,特别适合论坛的管理员使用。
1.原理
若用户使用代理上网,则使用Request.ServerVariables("HTTP_X_FORWARDED_FOR");若不使用代理,则使用Request.ServerVariables("REMOTE_ADDR")。
2.实践
<%
'透过代理服务器取得客户端的真实 IP 地址
dim userip '声明存储IP地址的变量
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
%>
以上代码在Win2000+SP4+IIS5和Win2003+IIS6下调试成功。
本文介绍了一种通过ASP脚本在考虑代理服务器的情况下获取客户端真实IP地址的方法。利用Request.ServerVariables("HTTP_X_FORWARDED_FOR")和Request.ServerVariables("REMOTE_ADDR")两个属性相结合,可以有效地识别客户端是否通过代理服务器上网,并最终确定其真实的IP地址。
819

被折叠的 条评论
为什么被折叠?



