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

利用ASP获取客户端真实IP地址一、前言随着Internet的普及以及网络用户的增多,摆在各个网站面前的是网络安全问题以及对客户的管理问题,比如说,有个用户不停的攻击你的网站,那么你可以查出他的IP地址,然后封杀他的IP地址;有个用户启动几十个线程到你网站下载文件,导致别人不好下载,那么你可以允许他的IP地址最多只能启动两个线程;有个用户试图以多个身份登陆到你的游戏室下棋,那你可以设置一个IP只能以一个身份登陆一个游戏室,所有的这些问题都是建立在你要先获取他的IP地址为前提,本文讲的就是如何通过服务器获取客户端的IP地址。二、ASP简介ASP全称ActiveServerPages它是在服务器端运行的脚本语言,使用它可以创建和运行动态、交互的Web服务器应用程序。使用ASP可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序,它是在标准的HTML流中用<%%>加入ASP语句,然后以.asp作为扩展名的网页。由于脚本在服务器上而不是在客户端运行,传送到浏览器上的Web页是在Web服务器上生成的,所以不必担心浏览器能否处理脚本:Web服务器已经完成了所有脚本的处理,并将标准的HTML传输到浏览器,由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制,用户看不到创建他们正在浏览的页的脚本命令。ASP3.0有7个内建对象,其中有两个对象一直与客户端联系,一个是Request,另一个是Response,Request对象是获取客户端信息,而Response对象正好相反,是用来控制发送给用户的信息,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。这两个对象都包含了一些属性、方法、变量以及数据集合,两者的语法为:Request或Response[.集合|属性|方法](变量)Request对象里有个ServerVariables的数据集合,也是本文要用到的,叫服务器环境变量,它能够自动获得客户端的很多信息,由于这个集合的变量比较多,本文只列少许常用的:ALL_客户端发送的所有标题文件。CONTENT_LENGTH客户端发出内容的长度。CONTENT_TYPE内容的数据类型。如:“text/html”。同附加信息的查询一起使用,如查询GET、POST和PUT。LOCAL_ADDR返回接受请求的服务器地址。如果在绑定多个IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要。LOGON_USER用户登录WindowsNT的账号。QUERY_STRING查询请求中问号(?)后的信息。REMOTE_ADDR发出请求的远程主机(client)的IP地址。REMOTE_HOST发出请求的主机(client)名称。如果服务器无此信息,它将设置为空的MOTE_ADDR变量。REQUEST_METHOD该方法用于提出请求。相当于用于的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地址ResponseIp_address'显示客户端的ip地址,调试程序时用用而已,真正用的时候不应该让用户看到%>………………………………………………………………</body></html>正常情况这样就能取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址,要想透过代理服务器取得客户端的真实IP地址,就要使用微软公司在一般ASP技术文档中并未公布的Request.ServerVariables("_X_FORWARDED_FOR")来读取,但是需要注意的是:如果客户端没有通过代理服务器来访问,那么用Request.ServerVariables("_X_FORWARDED_FOR")取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:<html><head><title>欢迎访问本网站</title></head><body>………………………………………………………………<%Ip_address=Request.ServerVariables("_X_FORWARDED_FOR")IfIp_address=""ThenIp_address=Request.ServerVariables("...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?