利用ASP获取客户端真实IP地址
利用ASP获取客户端真实IP地址 摘 要 随着Internet 的普及以及网络用户的增多,各个网站急需解决的问 题就是如何给用户提供更好的服务,以及防止某些用户的恶意攻击,要达到这一 目的首先要获得用户方的真实的IP地址,然后再对该IP地址作相应的处理,本文 阐述的就是如何获取客户端的真实IP地址。关键字 ASP HTML IP地址 ALL_HTTP 客户端发送的所有 HTTP 标题文件。
CONTENT_LENGTH 客户端发出内容的长度。
CONTENT_TYPE 内容的数据类型。如:“text/html”。同附加信息 的查询 一起使用,如 HTTP 查询 GET、POST 和 PUT。
LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个IP 地址的多 宿主机器上查找请求所使用的地址 时,这条变量非常重要。
LOGON_USER 用户登录 Windows NT 的账号。
QUERY_STRING 查询 HTTP 请求中问号()后的信息。
REMOTE_ADDR 发出请求的远程主机 (client) 的 IP 地址。
REMOTE_HOST 发出请求的主机 (client) 名称。如果服务器无此 信息,它 将设置为空的 MOTE_ADDR 变量。
REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、 HEAD、POST等 等。
SERVER_NAME 出现在自引用 URL 中的服务器主机名、DNS 化名 或 IP 地址。
SERVER_PORT 发送请求的端口号。
三. 实现 正如前文介绍ASP那样,我们可以利用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,假如网 站的主页是index.asp,我们可以在它的HTML里加上这样一段代码:
html head title欢迎访问本网站/title /head body …………………… ………………………………………… % Ip_address=Request.ServerVariables ("REMOTE_ADDR") "获得客户端的ip 地址 Response Ip_address "显示客户端的ip地址,调试程序时用用而已,真正用的 时候不应该让用户看到 % …………………… …………………… …………………… /body /html 正常情况这样就能取得客户端的IP地址,但如果客户端是使用代理服务器 来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址, 要想透过代理服务器取得客户端的真实 IP 地址,就要使用微软公司在一般ASP 技术文档中并未公布的Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取,但是需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。
因此,如果要在程序中使用此方法,可以这样处理:
html head title欢迎访问本网站/title /head body …………………… …………………… …………………… % Ip_address=Request.ServerVariables ("HTTP_X_FORWARDED_FOR") If Ip_address="" Then Ip_address= Request.ServerVariables ("RE 通过这种办法,我们就能获得客户端真实的IP地址了,一旦有了IP地址, 剩下的问题就是赋予该IP地址什么权限的问题——是拒绝或是欢迎一切由您掌 握 参考文献:
1. Beginning Active Server Pages3.0 David Buser John Kaufman著,2001.6出版 机械工业出版社2. Professional Active Server Pages3.0 David Buser John Kaufman著,2001.6出 版 机械工业出版社