通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码
本文转自情'blog通过ASP禁止指定IP和只允许指定IP访问网站的代码,需要的朋友可以参考下。
一、禁止指定IP防问网站,并执行相应操作:
ASP代码
<%
Dim IP,IPString,VisitIP
'设置IP地址,用“|”隔开
IPString="|192.168.0.42|192.168.0.43|"
'获取IP地址
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
VisitIP="|"&IP&"|"
If instr(1,IPString,VisitIP)>0 Then
'符合禁止的IP执行相应的操作
Response.write "您所在的IP禁止访问"
response.end
End If
%>
二、把代码修改一下,只允许指定IP防问网站,并执行相应操作:
ASP代码
<%
Dim IP,IPString,VisitIP
'设置IP地址,用“|”隔开
IPString="|192.168.0.42|192.168.0.42|"
'获取IP地址
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
VisitIP="|"&IP&"|"
If instr(1,IPString,VisitIP)>0 Then
'符合的IP执行相应的操作
Response.write 您所在的IP可以访问"
else
'不符合的IP执行相应的操作
Response.write "您所在的IP禁止访问"
response.end
End If
%>
三、实际应用中的使用方法:
然后把上面其中的代码另存为IP.asp文件,然后用下面方法在asp程序页面加入下面代码即可
通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码
<!-- #include file="IP.asp" -->
----------------------分割线 ------------------------------------------------
禁止某IP地址访问自己网站的ASP代码
总有一些讨厌的IP地址来自己网站,那么就用下面的代码来禁止它访问自己的网站吧
把下面代码另存为ip.asp
ASP代码
<%
Dim IP,IPString,VisitIP
'要禁止的IP地址
IPString="|218.58.194.90|218.58.194.218|218.58.194.222|"
'获取IP地址
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" Then
IP = Request.ServerVariables("REMOTE_ADDR")
End If
VisitIP="|"&IP&"|"
If instr(1,IPString,VisitIP)>0 Then
Response.write "<Script Language=JavaScript>alert('本站禁止您的访问!');</Script>"
response.end
End If
%>
调用方法:把下面这句代码加到你的网页最开始即可 <!--#include file="ip.asp"-->
----------------------分割线------------------------------------------------
允许的IP地址段
ASP代码
<%
''获取访问者的地址
ip=Request.ServerVariables("REMOTE_ADDR")
''允许的IP地址段为10.0.0.0~10.68.63.255
allowip1="10.0.0.0"
allowip2="10.68.10.71"
response.writecheckip(ip,allowip1,allowip2)
functioncheckip(ip,allowip1,allowip2)
dimcheck(4)
checkip=false
ipstr=split(ip,".")
allow1=split(allowip1,".")
allow2=split(allowip2,".")
ifcint(allow1(0))>cint(allow2(0))then''判断IP地址段是否合法
response.write"禁止访问"
exitfunction
endif
fori=0toubound(ipstr)
ifcint(allow1(i))<cint(allow2(i))then
ifcint(allow1(i))=cint(ipstr(i))then
check(i)=true
checkip=true
exitfor
else
ifcint(ipstr(i))<cint(allow2(i))then
check(i)=true
checkip=true
exitfor
else
ifcint(ipstr(i))>cint(allow2(i))then
check(i)=false
checkip=false
exitfor
else
check(i)=true
checkip=true
endif
endif
endif
else
ifcint(allow1(i))>cint(ipstr(i))orcint(allow1(i))<cint(ipstr(i))then
check(i)=false
checkip=false
ifi<>ubound(ipstr)then
exitfor
endif
else
check(i)=true
endif
endif
next
if(check(0)=trueandcheck(1)=trueandcheck(2)=trueandcheck(3)=false)and(cint(allow2(2))>cint(ipstr(2)))then
checkip=true
endif
endfunction
%>
Re: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码
很有用的分享,代码简洁实用,对于需要快速限制特定IP或IP段的ASP站点来说非常方便。特别是通过include文件调用的方式,维护起来也很灵活。另外,获取客户端IP时同时考虑了`HTTP_X_FORWARDED_FOR`和`REMOTE_ADDR`,能兼容代理情况,细节做得很到位。感谢整理!Re: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码
感谢楼主分享这么实用的ASP代码,控制IP访问在网站安全中确实很重要。代码逻辑清晰,注释也很详细,很适合新手直接拿来用。我注意到第一段禁止IP的代码里用“|”分隔IP列表,这样处理单个IP很方便;如果想禁止一个IP段(比如192.168.0.*),可能还需要额外写正则或者分段判断,楼主有没有考虑过这方面的扩展?另外,获取IP时先判断“HTTP_X_FORWARDED_FOR”再退回到“REMOTE_ADDR”,对于使用代理的来访者也能正确捕获,考虑得很周全。再次谢谢分享!Re: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码
感谢分享!这些代码挺实用的,特别是对于需要做简单IP访问控制的老网站。稍微注意一下:第二段代码里 `IPString` 的两个 IP 写成了相同值,应该是笔误;另外通过 `HTTP_X_FORWARDED_FOR` 获取真实 IP 在代理环境下可能不准确,建议结合 `REMOTE_ADDR` 一起判断。整体逻辑清晰,直接 include 调用也很方便,适合快速部署。
页:
[1]