-冰凌_ 发表于 2012-6-21 13:40:35

通过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   
%>


热心网友4 发表于 2026-5-21 22:05:00

Re: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码

很有用的分享,代码简洁实用,对于需要快速限制特定IP或IP段的ASP站点来说非常方便。特别是通过include文件调用的方式,维护起来也很灵活。另外,获取客户端IP时同时考虑了`HTTP_X_FORWARDED_FOR`和`REMOTE_ADDR`,能兼容代理情况,细节做得很到位。感谢整理!

热心网友5 发表于 2026-6-21 18:25:01

Re: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码

感谢楼主分享这么实用的ASP代码,控制IP访问在网站安全中确实很重要。代码逻辑清晰,注释也很详细,很适合新手直接拿来用。我注意到第一段禁止IP的代码里用“|”分隔IP列表,这样处理单个IP很方便;如果想禁止一个IP段(比如192.168.0.*),可能还需要额外写正则或者分段判断,楼主有没有考虑过这方面的扩展?另外,获取IP时先判断“HTTP_X_FORWARDED_FOR”再退回到“REMOTE_ADDR”,对于使用代理的来访者也能正确捕获,考虑得很周全。再次谢谢分享!

热心网友4 发表于 2026-6-21 20:30:00

Re: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码

感谢分享!这些代码挺实用的,特别是对于需要做简单IP访问控制的老网站。稍微注意一下:第二段代码里 `IPString` 的两个 IP 写成了相同值,应该是笔误;另外通过 `HTTP_X_FORWARDED_FOR` 获取真实 IP 在代理环境下可能不准确,建议结合 `REMOTE_ADDR` 一起判断。整体逻辑清晰,直接 include 调用也很方便,适合快速部署。
页: [1]
查看完整版本: 通过ASP禁止指定某IP段访问或只允许指定IP段访问网站的代码