您所在的位置:小祥子 » 编程 » ASP » 正文

ASP锁定指定IP段访问的代码

时间:2015-02-13 编辑:本站 来源:本站原创

首先,谈思路。

1、网站有一个表专门储存锁定IP段的数据

2、用户访问的时候,获取用户的IP

3、转换成十进制对比用户的IP是否在数据库里的IP段之间,如果是,结束所有访问并提示

代码如下

<%
dim stop_ip,un_ip,rs_ip
un_ip=0
stop_ip= Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If stop_ip="" Then  stop_ip= Request.ServerVariables("REMOTE_ADDR")
call fiship(stop_ip)
if un_ip=0 then
    set rs_ip=conn.execute("select viw From 锁定IP表 where viw<>0 and ("&fishcip(stop_ip)&" between oneip and endip)",0,1) '根据网站本身的表来写SQL语句 viw表示是否锁定 1锁定
 if not rs_ip.eof then
 if rs_ip("viw")=1 then Response.write"对不起,您的IP已被锁定.如有疑问,请联系我们!<br>"
    rs_ip.close
 set rs_ip=nothing
 Response.end
 end if
end if

sub fiship(uip) '判断是否是一个正确的IP
         dim tip
   tip = split(uip,".")
    if not IsArray(tip) then un_ip=1
          if UBound(tip)<3 then un_ip=1
          if Not IsNumeric(tip(0)) or  Not IsNumeric(tip(1)) or  Not IsNumeric(tip(2)) or Not IsNumeric(tip(3)) then un_ip=1
    if cint(tip(0))>255 or cint(tip(1))>255 or cint(tip(2))>255 or cint(tip(3))>255 then un_ip=1
end sub

function fishcip(sip)‘转换成十进制
    dim tip
    tip = split(sip,".")
 if cint(tip(0))<128 then
  fishcip=cint(tip(0))*256*256*256+cint(tip(1))*256*256+cint(tip(2))*256+cint(tip(3))
 else
  fishcip=cint(tip(0))*256*256*256+cint(tip(1))*256*256+cint(tip(2))*256+cint(tip(3))-4294967296
 end if
end function

%>

关键词:ASP IP 访问 锁定