Dans ma configuration Apache, je veux définir une variable d'environnement si je vois que le visiteur provient d'une plage IP spécifique. Actuellement, je le fais de cette façon:
SetEnvIfNoCase Remote_Addr "^194\.8\.7[45]\." banned=spammer-ip
SetEnvIfNoCase Remote_Addr "^212\.156\.170\." banned=spammer-ip
Ce que je préférerais, c'est quelque chose comme ceci:
SetEnvIfIpRange 194.8.74.0/23 banned=spammer-ip
SetEnvIfIpRange 212.156.170.0/24 banned=spammer-ip
... parce que je pense que convertir une adresse IP en une chaîne puis faire une expression régulière est un gaspillage total de ressources.
Je pourrais faire un
Deny From 194.8.74.0/23
... mais je n'ai pas de variable que je peux vérifier dans ma page d'erreur 403 - pour trouver la raison pour laquelle l'accès a été refusé.
Toutes les suggestions que je pourrais manquer? Existe-t-il un Apache2 MOD qui peut définir des variables d'environnement basées sur des "plages d'adresses IP"?
Vous pouvez utiliser le formatage CIDR avec Apache 2.4 qui permet
<If>
:la source
Ce n'est pas vraiment une solution pour passer de RegExp aux plages IP , mais j'ai trouvé un joli script hébergé par Google pour convertir une plage IP en expression rationnelle correspondante. Cela pourrait aussi être utile à certains d'entre vous ...
Comment exclure le trafic d'une plage d'adresses IP?
[Mise à jour]
Il semble que Google ait supprimé l'outil d'adresse IP (ou au moins le lien qu'ils ont sur leur site est rompu), mais il existe un outil similaire ici: http://www.analyticsmarket.com/freetools/ipregex
la source