屏蔽任意格式,任意IP,IP地址段的代码

发布时间:2013-09-19 11:33:46来源:阅读(1481)

    'By lzy
     '2/15/2006

    'http://www.52hai.com的sungla 提醒大家保留原作者信息。
    Const BadIPGroup = "59.57.*.*|218.5.18.8|220.162.73.44"
    '上面屏蔽的2个地址和1个地址段(福建的垃圾,换了5个ip来发色情的内容)是来我这里捣乱过的垃圾。
    If IsForbidIP(BadIPGroup) = True Then
    Response.Write(GetIP &"你所在ip段一些用户经常发布色情信息,现已经把该部分ip举报到国家网络监察中心,并禁止该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

关键字