Home » Programmation Web » Langages Web » 3 techniques pour bannir des plages d’adresses IP

3 techniques pour bannir des plages d’adresses IP

bannir plage d'adresse IPSi vous administrez vous-même votre site web, il est possible que vous ayez déjà eu des problèmes de spams.
En poussant les vérifications plus loin, ces spams viennent souvent d’un même groupe d’IP.

J’ai recensé 3 techniques qui permettent de bannir des plages entières d’adresse IP.

GEOIP_COUNTRY_CODE (htaccess)

La première technique consiste à utiliser le GEOIP_COUNTRY_CODE avec le htaccess. C’est une technique qui permet de bloquer les adresses IP de tout un pays.
Prenons l’exemple ci-dessous :

SetEnvIf GEOIP_COUNTRY_CODE DE BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry

C’est une solution donné par OVH, ce code bloque les accès de l’Allemagne (DE), et de la Russie (RU).
Si vous voulez plus d’infos, voici le lien de la page d’OVH.
Après vérification, la page OVH n’existe plus, mais la technique marche encore.

 

Bannissement par masque de sous-réseau (htaccess)

Si vous voulez bannir une plage d’adresse IP plus spécifique avec une adresse de début et une de fin, vous pouvez utiliser le calcul par masque de sous-réseau.
Pour utiliser cette technique, 2 solutions possible :

  • Connaître la manière de calculer un masque de sous-réseau.
  • Utiliser un outil qui fait lui-même ce calcul.

Voici un outil qui le fait très bien : monadresseip
Vous lui donnez les adresses IP de début et de fin et il vous donne un code à insérer dans votre htaccess.
C’est une technique qui peut vous sauver la vie sans forcément bloquer trop d’adresses IP.

Voici un exemple de code bloquant toutes les ip de 5.1.1.1 à 5.255.255.255

<Files *>
order allow,deny
allow from all
Deny from 5.1.1.1/255.1.1.1
</Files>

 

bannissement par code php

Il est aussi possible de faire un bannissement grâce à du code PHP. C’est très utile quand vous ne pouvez pas utiliser de htaccess.

Il suffit de prendre le code ci-dessous :

$ipDebut = ip2long('5.1.1.1');
$ipFin = ip2long('5.255.255.255');
$ipAbloquer = ip2long($_SERVER['REMOTE_ADDR']);
if (($ipAbloquer >= $ipDebut) && ($ipAbloquer <= $ipFin)){
header('HTTP/1.1 403 Forbidden');
//header('Status: 403 Forbidden');
exit();
}

Vous intégrer les adresses IP de départ et de fin, le code PHP va bloquer toutes les IP se situant entre les 2.

Posté dans Langages Web et taggé comme , ,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.