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