主要使用request對象的ServerVariables屬性,通過它來獲得環境變量的值。使用的語法為:Request.ServerVariables(variable),“variable”表示環境變量的名稱,如服務器主機名稱、Web服務器軟件名等等,若“variable”為“REMOTE_ADDR”則表示訪問者的IP地址,通過它就可以實現IP地址的過濾。
源程序如下:(文件名:demo.ASP)
<html>
<head>
<metahttp-equiv=Content-Typecontent=text/html;charset=gb_2312-80>
<metaname=GENERATORcontent=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.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>
</html>
實際使用只要稍微修改上面的程序(如IP地址等信息)就可以了,當然這只是在一個頁面中實現了安全防範功能,如果一個網站有多個頁面的話,可以設置一個session變量來對用戶進行標誌,以在後面的頁面中進行判斷