En mi configuración de Apache, quiero establecer una variable de entorno si veo que el visitante proviene de un rango de IP específico. Actualmente lo hago de esta manera:
SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip
SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip
Lo que preferiría es algo como esto:
SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip
SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip
... porque creo que convertir una dirección IP en una cadena y luego hacer una expresión regular es un desperdicio total de recursos.
Podría hacer un
Deny From 194.8.74.0/23
... pero luego no obtengo una variable que pueda verificar en mi página de error 403, para encontrar la razón por la que se ha denegado el acceso.
¿Alguna sugerencia de lo que podría extrañar? ¿Existe un MOD de Apache2 que puede establecer variables de entorno basadas en "Rangos de direcciones IP"?
Puede usar el formato CIDR con Apache 2.4 que permite
<If>
:fuente
Esta no es realmente una solución para pasar de RegExp a Rangos de IP , pero encontré un buen script alojado por Google para convertir un rango de IP en una expresión regular coincidente. También podría ser útil para algunos de ustedes ...
¿Cómo excluyo el tráfico de un rango de direcciones IP?
[Actualizar]
Parece que Google ha eliminado la herramienta de dirección IP (o al menos el enlace que tienen en su sitio está roto), pero hay una herramienta similar aquí: http://www.analyticsmarket.com/freetools/ipregex
fuente