利用ASP获取客户端真实IP地址

上传人:876****10 文档编号:141969353 上传时间:2020-08-14 格式:DOC 页数:6 大小:110.50KB
返回 下载 相关 举报
利用ASP获取客户端真实IP地址_第1页
第1页 / 共6页
利用ASP获取客户端真实IP地址_第2页
第2页 / 共6页
利用ASP获取客户端真实IP地址_第3页
第3页 / 共6页
利用ASP获取客户端真实IP地址_第4页
第4页 / 共6页
利用ASP获取客户端真实IP地址_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《利用ASP获取客户端真实IP地址》由会员分享,可在线阅读,更多相关《利用ASP获取客户端真实IP地址(6页珍藏版)》请在金锄头文库上搜索。

1、利用ASP获取客户端真实IP地址 作者: 日期:利用ASP获取客户端真实IP地址一、前言随着Internet 的普及以及网络用户的增多,摆在各个网站面前的是网络安全问题以及对客户的管理问题,比如说,有个用户不停的攻击你的网站,那么你可以查出他的IP地址,然后封杀他的IP地址;有个用户启动几十个线程到你网站下载文件,导致别人不好下载,那么你可以允许他的IP地址最多只能启动两个线程;有个用户试图以多个身份登陆到你的游戏室下棋,那你可以设置一个IP只能以一个身份登陆一个游戏室,所有的这些问题都是建立在你要先获取他的IP地址为前提,本文讲的就是如何通过服务器获取客户端的IP地址。二、ASP简介ASP全

2、称Active Server Pages 它是在服务器端运行的脚本语言, 使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序,它是在标准的HTML流中用加入ASP语句,然后以.asp作为扩展名的网页。由于脚本在服务器上而不是在客户端运行,传送到浏览器上的 Web 页是在 Web 服务器上生成的,所以不必担心浏览器能否处理脚本:Web 服务器已经完成了所有脚本的处理,并将标准的 HTML 传输到浏览器,由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制

3、,用户看不到创建他们正在浏览的页的脚本命令。ASP3.0有7个内建对象,其中有两个对象一直与客户端联系,一个是Request,另一个是Response, Request 对象是获取客户端 HTTP 信息 ,而Response 对象正好相反,是用来控制发送给用户的信息,包括直接发送信息给浏览器、重定向浏览器到另一个 URL 或设置 cookie 的值。这两个对象都包含了一些属性、方法、变量以及数据集合,两者的语法为:Request或Response. 集合 | 属性 | 方法 ( 变量 )Request对象里有个ServerVariables的数据集合,也是本文要用到的,叫服务器环境变量,它能够

4、自动获得客户端的很多信息,由于这个集合的变量比较多,本文只列少许常用的:ALL_HTTP 客户端发送的所有 HTTP 标题文件。CONTENT_LENGTH 客户端发出内容的长度。 CONTENT_TYPE 内容的数据类型。如:“text/html”。同附加信息的查询一起使用,如 HTTP 查询 GET、POST 和 PUT。LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个IP 地址的多宿主机器上查找请求所使用的地址 时,这条变量非常重要。LOGON_USER 用户登录 Windows NT 的账号。QUERY_STRING 查询 HTTP 请求中问号(?)后的信息。 REMOT

5、E_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 地址,假如网站的主页是

6、index.asp,我们可以在它的HTML里加上这样一段代码:欢迎访问本网站正常情况这样就能取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址,要想透过代理服务器取得客户端的真实 IP 地址,就要使用微软公司在一般ASP技术文档中并未公布的Request.ServerVariables(HTTP_X_FORWARDED_FOR) 来读取,但是需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables (HTTP_X_FORWARDED_FOR) 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理: 欢迎访问本网站% Ip_address=Request.ServerVariables (HTTP_X_FORWARDED_FOR) If Ip_address= Then Ip_address= Request.ServerVariables (REMOTE_ADDR)即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。通过这种办法,我们就能获得客户端真实的IP地址了,一旦有了IP地址,剩下的问题就是赋予该IP地址什么权限的问题是拒绝或是欢迎一切由您掌握

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号