推荐的用Asp实现屏蔽IP地址访问的代码

时间:2022-06-01 18:14:52
  1. ‘受屏蔽IP地址(段)集合,星号为通配符,通常保存于配置文件中。  
  2. <%  
  3. Const BadIPGroup = "220.200.59.136|220.205.168.141"  
  4. If IsForbidIP(BadIPGroup) = True Then  
  5.     Response.Write(GetUserIP &"IP地址禁止访问")  
  6.     Response.End()  
  7. End If  
  8.  
  9. '****************************************************************  
  10. '参数vBadIP:要屏蔽的IP段,IP地址集合,用|符号分隔多个IP地址(段)  
  11. '返回Bool:True用户IP在被屏蔽范围,False 反之  
  12. '****************************************************************  
  13. Function IsForbidIP(vBadIP)  
  14.   Dim counter, arrIPPart, arrBadIP, arrBadIPPart, i, j  
  15.  
  16.   arrBadIP = Split(vBadIP, "|")  
  17.   arrIPPart = Split(GetUserIP(), ".")  
  18.  
  19.   For i = 0 To UBound(arrBadIP)  
  20.     counter = 0  
  21.     arrBadIPPart = Split(arrBadIP(i), ".")  
  22.     For j = 0 To UBound(arrIPPart)  
  23.       If (arrBadIPPart(j)) = "*" or Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Then  
  24.          counter = counter + 1  
  25.       End If  
  26.     Next  
  27.     If counter = 4 Then  
  28.       IsForbidIP = True  
  29.       Exit Function  
  30.     End If  
  31.   Next  
  32.   IsForbidIP = False  
  33. End Function  
  34.  
  35. '***************  
  36. '返回客户IP地址  
  37. '***************  
  38. Function GetUserIP()  
  39.   Dim IP  
  40.   IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")  
  41.   If IP = "" Then IP = Request.ServerVariables("REMOTE_ADDR")  
  42.   GetUserIP = IP  
  43. End Function  
  44. %>