<%
if Request.ServerVariables("REMOTE_ADDR")="113.97.238.13" then
Response.Write "您的IP已被禁止,无权访问本站!"
end if
%>
不带提示
<%
if Request.ServerVariables("REMOTE_ADDR")="113.97.238.13" then
Response.Write""
end if
%>
把以下代码加入到你的ASP页面就可以测试到效果了:<%
'受屏蔽IP地址(段)集合,星号为通配符,通常保存于配置文件中。
Const BadIPGroup = "192.168.1.*|202.68.*.*|*.12.55.34|185.*.96.24|127.*.0.1|192.168.0.1"
If IsForbidIP(BadIPGroup) = True Then
Response.Write(GetIP &"IP地址禁止访问")
Response.End()
End If
'****************************************************************
'参数vBadIP:要屏蔽的IP段,IP地址集合,用|符号分隔多个IP地址(段)
'返回Bool:True用户IP在被屏蔽范围,False 反之
'****************************************************************
Function IsForbidIP(vBadIP)
Dim counter, arrIPPart, arrBadIP, arrBadIPPart, i, j
arrBadIP = Split(vBadIP, "|")
arrIPPart = Split(GetIP(), ".")
For i = 0 To UBound(arrBadIP)
counter = 0
arrBadIPPart = Split(arrBadIP(i), ".")
For j = 0 To UBound(arrIPPart)
If(arrBadIPPart(j)) = "*" or Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Then
counter = counter + 1
End If
Next
If counter = 4 Then
IsForbidIP = True
Exit Function
End If
Next
IsForbidIP = False
End Function
'***************
'返回客户IP地址
'***************
Function GetIP()
Dim IP
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then IP = Request.ServerVariables("REMOTE_ADDR")
GetIP = IP
End Function
%>
要使用request对象的ServerVariables属性,通过它来获得环境变量的值。使用的语法为:Request.ServerVariables(variable),variable表示环境变量的名称,如服务器主机名称、Web服务器软件名等等,若variable为REMOTE_ADDR则表示访问者的IP地址,通过它就可以实现IP地址的过滤。
源程序如下:(文件名:demo.ASP)<html><head>
<metahttp-equiv=Content-Typecontent=text/htmlcharset=gb_2312-80><metaname=GENERATORcontent=MicrosoftFrontPageExpress2.0>
<style>
<!--
.as{line-height:15pxfont-size:9pt}
a:hover{color:rgb(0,51,240)text-decoration:underline}
.p9{font-family:宋体font-size:9ptline-height:15pt}
.p12{font-family:宋体font-size:12ptline-height:18pt}
a:link{text-decoration:none}
a:visited{text-decoration:none}
a:hover{text-decoration:underlinefont-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=1to2strip=right(strip,len(strip)-instr(1,strip,.))nextstrip=left(strip,instr(1,strip,.)-1)
′IP地址有效性检验及密码验证,包括两方面的内容:
′如果IP地址符合则通过验证;如果IP地址不符合则检验输入的密码是否正确(此处密码为asp)
if(left(rip,5)<>127.1orstrip<1orstrip>50)andrequest(Passwd)<>aspthen%><p><fontcolor=#FF0000>对不起,你的IP是<%=rip%>,本页面可以访问的IP是127.1.1.*到127.1.50.*之间,如果你是本单位内部网的用户,请确认你的浏览器没有使用代理!<BR></font></p><formaction=demo.aspmethod=POSTid=form1name=form1><p>请输入访问密码:<inputtype=passwordname=Passwd><inputtype=submitvalue=确认name=B1></p></form>
<%else%>
′合法用户可以访问的页面,在此可以加入任何信息
祝贺您,您已经顺利通过了页面的安全认证,可以直接使用本站点的资源!
<%endif%>
</body>
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)