网站开发者

ASP屏蔽IP的一些代码

Private Function getIP()
Dim strIPAddr
If Request.ServerVariables( "HTTP_X_FORWARDED_FOR ")=" " OR InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),   "unknown ")>0 Then
strIPAddr=Request.ServerVariables( "REMOTE_ADDR ")
ElseIf InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),",")>0 Then
strIPAddr=Mid(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),1,InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),",")-1)
ElseIf InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),"; ")>0 Then
strIPAddr=Mid(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),1,InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "),"; ")-1)
Else
strIPAddr=Request.ServerVariables( "HTTP_X_FORWARDED_FOR ")
End If
getIP=Trim(Mid(strIPAddr,1,30))
End Function



IP屏蔽代码:****************************************************************

 

受屏蔽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

posted on 2010-08-09 22:46  南极胖熊  阅读(659)  评论(0)    收藏  举报