Asp restringe el acceso a IP y evita que un determinado segmento de IP acceda al código de este sitio.
A menudo, algunos sitios web B2B o B2C locales publican mucho spam en lotes en todas partes. Me gustaría compartir mi solución con todos.
El código es el siguiente:
<%
''Obtener la dirección del visitante
ip=Solicitud.Variables del servidor(REMOTE_ADDR)
''El rango de direcciones IP permitido es 10.0.0.0~10.68.63.255
permitirip1=10.0.0.0
permitirip2=10.68.10.71
respuesta.writecheckip(ip,allowip1,allowip2)
funcióncheckip(ip,allowip1,allowip2)
comprobar tenue(4)
checkip=falso
ipstr=dividir(ip,.)
permitir1=dividir(allowip1,.)
permitir2=dividir(allowip2,.)
ifcint(allow1(0))>cint(allow2(0))then'' determina si el segmento de dirección IP es legal
respuesta.writeAcceso prohibido
función de salida
endif
fori=0toubound(ipstr)
ifcint(allow1(i))<cint(allow2(i))entonces
sicint(allow1(i))=cint(ipstr(i))entonces
marcar(i)=verdadero
checkip=verdadero
salida para
demás
ifcint(ipstr(i))<cint(allow2(i))entonces
marcar(i)=verdadero
checkip=verdadero
salida para
demás
ifcint(ipstr(i))>cint(allow2(i))entonces
comprobar(i)=falso
checkip=falso
salida para
demás
marcar(i)=verdadero
checkip=verdadero
endif
endif
endif
demás
ifcint(allow1(i))>cint(ipstr(i))orcint(allow1(i))<cint(ipstr(i))entonces
comprobar(i)=falso
checkip=falso
si<>ubound(ipstr)entonces
salida para
endif
demás
marcar(i)=verdadero
endif
endif
próximo
si(check(0)=trueandcheck(1)=trueandcheck(2)=trueandcheck(3)=false)y(cint(allow2(2))>cint(ipstr(2)))entonces
checkip=verdadero
endif
función final
%>
Agregue el siguiente código a su página ASP para probar el efecto:
Copie el código de código de la siguiente manera:
<%
'Una colección de direcciones IP bloqueadas (segmentos), el asterisco es un carácter comodín, generalmente guardado en el archivo de configuración.
Const BadIPGroup = 192.168.1.*|202.68.*.*|*.12.55.34|185.*.96.24|127.*.0.1|192.168.0.1
Si IsForbidIP (BadIPGroup) = Verdadero entonces
Response.Write (GetIP y dirección IP tienen prohibido el acceso)
Respuesta.Fin()
Terminar si
'Parámetro vBadIP: segmento IP que se bloqueará, dirección IP configurada, use el símbolo para separar múltiples direcciones IP (segmentos)
'Return Bool: True la IP del usuario está en el rango bloqueado, False en caso contrario
La función esProbidIP(vBadIP)
Contador atenuado, arrIPPart, arrBadIP, arrBadIPPart, i, j
arrBadIP = Dividir(vBadIP, |)
arrIPPart = Dividir(GetIP(), .)
Para i = 0 a UBound(arrBadIP)
contador = 0
arrBadIPPart = Dividir(arrBadIP(i), .)
Para j = 0 a UBound(arrIPPart)
Si(arrBadIPPart(j)) = * o Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Entonces
contador = contador + 1
Terminar si
Próximo
Si contador = 4 entonces
IsForbidIP = Verdadero
Función de salida
Terminar si
Próximo
IsForbidIP = Falso
Función final
''Devolver dirección IP del cliente
Función ObtenerIP()
IP tenue
IP = Solicitud.Variables del servidor(HTTP_X_FORWARDED_FOR)
Si IP = Entonces IP = Request.ServerVariables(REMOTE_ADDR)
ObtenerIP=IP
Función final
%>
De esta manera, puede limitar el rango de IP para el acceso al sitio web. Puede configurarlo según el rango de IP de la región.
Utilizo este método para evitar que usuarios extranjeros utilicen software fraudulento para publicar información maliciosamente en mi sitio web.