Utiliser le module Geoip pour bloquer un pays via l'htaccess

3000

New Member
#1
Bonjour,

J'aimerais connaître la façon d'utiliser le module Geoip dans l' htaccess pour bloquer directement un pays

J'ai bien le module activé dans le cPanel ° Extensions ... Mais mes tests n'ont pas fonctionnés ...
geoip-PlanetH.png
Aurait-il un autre truc à activer / modifier / ajouter ...
Les fonctions:
Code:
order allow,deny
allow from all
deny from 5.102.78.0/24
Mais c'est ce que je veux éviter, sinon le htaccess va monter à plusieurs mo
En principe les codes ci dessous devraient fonctionner, (Je les ai obtenus via le chat du site):
J'ai tenté plusieurs codes .... Je teste MQ ... comme ça je peux voir de suite si je suis bloqué :)

Celui-ci plante le site:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Code:
GeoIPEnable On

# Add countries you wish to deny here
SetEnvIf GEOIP_COUNTRY_CODE MQ BlockCountry
Allow from all
Deny from env=DenyCountry
</ifModule>
Aucun effet
Code:
deny from .mq
Aucun effet
Code:
SetEnvIf GEOIP_COUNTRY_CODE MQ BlockCountry
Deny from env=BlockCountry
Je suppose qu'une action est encore nécessaire, le module geoip ne semble pas opérationnel, en effet, j'ai installer un fichier de test:
Codes du fichier:
PHP:
<?php
echo "Test Geo Ip <br><br>";
echo "IP: ".$_SERVER['REMOTE_ADDR']."<br>";
//Afficher l'adresse ip du visiteur

echo "GEOIP_AREA_CODE: ".$_SERVER['GEOIP_AREA_CODE']."<br>";
echo "GEOIP_CITY: ".$_SERVER['GEOIP_CITY']."<br>";
//Affiche La ville du visiteur

echo "GEOIP_COUNTRY_CODE: ".$_SERVER['GEOIP_COUNTRY_CODE']."<br>";
//Affiche le code pays du visiteur (fr,en,be par exemple)

echo "GEOIP_COUNTRY_NAME: ".$_SERVER['GEOIP_COUNTRY_NAME']."<br>";
//Affiche le pays du visiteur

echo "GEOIP_DMA_CODE: ".$_SERVER['GEOIP_DMA_CODE']."<br>";
echo "GEOIP_LATITUDE: ".$_SERVER['GEOIP_LATITUDE']."<br>";
//Affiche la latitude

echo "GEOIP_LONGITUDE: ".$_SERVER['GEOIP_LONGITUDE']."<br>";
//Affiche la longtitude

echo "GEOIP_REGION: ".$_SERVER['GEOIP_REGION']."<br>";
?>
Et ici les résultats, il ne donne que l'ip ... le reste, rien ...

TestGeo Ip

Code:
IP: 188.***.**.54
Notice: Undefined index: GEOIP_AREA_CODE in /home/user/public_html/geo.php on line 6
GEOIP_AREA_CODE: 

Notice: Undefined index: GEOIP_CITY in /home/user/public_html/geo.php on line 7
GEOIP_CITY: 

Notice: Undefined index: GEOIP_COUNTRY_CODE in /user/user/public_html/geo.php on line 10
GEOIP_COUNTRY_CODE: 

Notice: Undefined index: GEOIP_COUNTRY_NAME in /user/public_html/geo.php on line 13
GEOIP_COUNTRY_NAME: 

Notice: Undefined index: GEOIP_DMA_CODE in /home/user/public_html/geo.php on line 16
GEOIP_DMA_CODE: 

Notice: Undefined index: GEOIP_LATITUDE in /home/user/public_html/geo.php on line 17
GEOIP_LATITUDE: 

Notice: Undefined index: GEOIP_LONGITUDE in /home/user/public_html/geo.php on line 20
GEOIP_LONGITUDE: 

Notice: Undefined index: GEOIP_REGION in /home/user/public_html/geo.php on line 23
GEOIP_REGION:

Merci, si quelqu'un a une idée ... Merci d'avance - Cordialement :)
 
Dernière édition:

PH-Gabriel

Administrator
Membre du personnel
#2
Bonjour,

Le module que vous activez via le sélecteur php est le module PHP de geoip. Ce n'est pas celui d'Apache, alors il ne sera pas possible de l'utiliser dans le .htaccess.

Vous allez avoir la possibilité d'utiliser les fonctions PHP de geoip.

Pour ce qui concerne le .htaccess, pouvez-vous envoyer un ticket au support technique ?

Nous allons pouvoir vérifier si c'est possible de l'activer pour vous.
 

3000

New Member
#3
Bonjour,

Ah ok, merci du retour :) pas de soucis, je vais faire le nécessaire.

Je viendrais donner le résultat par la suite :)

Bonne journée
 

3000

New Member
#4
Bonjour,

J'ai donc la réponse à mes questions sur le geoip ...

Le geoip que vous indiquez est celui lié à PHP http://php.net/manual/fr/book.geoip.php et non à Apache.

Actuellement sur un hébergement partagé, nous ne souhaitons pas installer GeoIP sur Apache car celui-ci par expérience réduis la performance du serveur.

Si vous souhaitez tout de même bloquer un pays en HTTP(s), je vous invite à utilise ce site qui vous sortira des ranges: https://www.ip2location.com/blockvisitorsbycountry.aspx

Sachez toute fois que le blocage de pays est très lourds et réduis considérablement les performances du site car pour chaque requête GET celui-ci va devoir faire plusieurs milliers de vérifications afin de voir si l'IP du visiteurs se trouve dans un range bloqué.
Donc ok, pas de soucis ... Si besoin, j'utiliserais la solution via https://www.ip2location.com/blockvisitorsbycountry.aspx

Je remercie Mr Quentin pour avoir répondu à toutes mes questions :)

Bonne fin de journée à tous ... Topic résolu :)
 
Haut