Na minha configuração do Apache, quero definir uma variável de ambiente se perceber que o visitante vem de um intervalo de IP específico. Atualmente eu faço desta maneira:
SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip
SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip
O que eu preferiria é algo como isto:
SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip
SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip
... porque acho que converter um endereço IP em uma string e depois fazer uma expressão regular é um total desperdício de recursos.
Eu poderia fazer um
Deny From 194.8.74.0/23
... mas não recebo uma variável que possa verificar na minha página de erro 403 - para descobrir o motivo pelo qual o acesso foi negado.
Alguma sugestão do que eu possa sentir falta? Existe um Apache2 MOD que pode definir variáveis de ambiente com base em "Intervalos de endereços IP"?
Você pode usar a formatação CIDR com o Apache 2.4, que permite
<If>
:fonte
Essa não é realmente uma solução para ir do RegExp para o intervalo de IP , mas encontrei um bom script hospedado pelo Google para converter um intervalo de IP em um regexp correspondente. Também pode ser útil para alguns de vocês ...
Como excluo o tráfego de um intervalo de endereços IP?
[Atualizar]
Parece que o Google removeu a Ferramenta de Endereço IP (ou pelo menos o link que eles têm no site está quebrado), mas há uma ferramenta semelhante aqui: http://www.analyticsmarket.com/freetools/ipregex
fonte