要使用request对象的ServerVariables属性,通过它来获得环境变量的值。使用的语法为:Request.ServerVariables(variable),“variable”表示环境变量的名称,如服务器主机名称、Web服务器软件名等等,若“variable”为“REMOTE_ADDR”则表示访问者的IP地址,通过它就可以实现IP地址的过滤。
源程序如下:(文件名:demo.ASP)
<html>
<head>
<metahttp-equiv=“Content-Type”content=“text/html;charset=gb_2312-80”>
<metaname=“GENERATOR”content=“MicrosoftFrontPageExpress2.0”>
<style>
<!--
.as{line-height:15px;font-size:9pt}
a:hover{color:rgb(0,51,240);text-decoration:underline}
.p9{font-family:“宋体”;font-size:9pt;line-height:15pt}
.p12{font-family:“宋体”;font-size:12pt;line-height:18pt}
a:link{text-decoration:none;}
a:visited{text-decoration:none;}
a:hover{text-decoration:underline;font-size:125%;color:blue}
-->
</style>
<title>ASP页面防火墙功能演示</title>
</head>
<bodybackground=“back.jpg”>
<%
′使用Request.ServerVariables(“REMOTE_ADDR”)得到IP地址并保存在变量rip中
rip=Request.ServerVariables(“REMOTE_ADDR”)
strip=cstr(rip)
′取得IP地址第三个段的值并保存到strip中
fori=1to2
strip=right(strip,len(strip)-instr(1,strip,“.”))
next
strip=left(strip,instr(1,strip,“.”)-1)
′IP地址有效性检验及密码验证,包括两方面的内容:
′如果IP地址符合则通过验证;如果IP地址不符合则检验输入的密码是否正确(此处密码为“asp”)
if(left(rip,5)<>“127.1”orstrip<“1”orstrip>“50”)andrequest(“Passwd”)<>“asp”then
%>
<p><fontcolor=“#FF0000”>对不起,你的IP是<%=rip%>,本页面可以访问的IP是127.1.1.*到127.1.50.*之间,如果你是本单位内部网的用户,请确认你的浏览器没有使用代理!<BR></font></p>
<formaction=“demo.asp”method=“POST”id=form1name=form1>
<p>请输入访问密码:<inputtype=“password”name=“Passwd”><inputtype=“submit”value=“确认”name=“B1”>;
</p>
</form>
<%else%>
′合法用户可以访问的页面,在此可以加入任何信息
祝贺您,您已经顺利通过了页面的安全认证,可以直接使用本站点的资源!
<%endif%>
</body>
</html>
实际使用只要稍微修改上面的程序(如IP地址等信息)就可以了,当然这只是在一个页面中实现了安全防范功能,如果一个网站有多个页面的话,可以设置一个session变量来对用户进行标志,以在后面的页面中进行判断。