Redirection en fonction de l'adresse IP du visiteur

Signaler
-
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
-
bonjour à tous,
(j'ose espérer avoir posté dans au bon endroit, sinon n'hésitez pas à me déplacer :-)
je suis en Polynésie et le FAI local MANA a un range d'adresses IP de 202.90.64.0 à 202.90.95.255
j'ai un site international en ".com" et un site local pour les visiteurs de Polynésie en ".pf"
j'aimerai que mes visiteurs sur le site ".com" soient automatiquement reroutés sur le site en ".pf" dès l'instant où leur adresse IP est dans le range 202.90.64.0 à 202.90.95.255
(si je me débrouille un peu en javascript je suis totalement ignare en PHP)
par avance merci à tous ceux qui pouront m'aider

3 réponses

Messages postés
130
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
7 juin 2013

Bonjour,

Ce que tu peux faire, c'est récupérer l'adresse IP de ton visiteur (en php) : $_SERVER["REMOTE_ADDR"];

Que tu mets dans une variable JS :
var temp = "<?php echo $_SERVER["REMOTE_ADDR"]; ?>";


Puis dans une condition tu vérifies que l'adresse de ton visiteur et dans la plage.
merci Sylvain pour ta réponse,
malgré de nombreux essais je ne suis pas arrivé à gérer la variable du fait que je doive la comparer dans un range
comment savoir si 202.90.75.82 est dans 202.90.64.0 à 202.90.95.255
aurais tu une idée de la façon dont je dois monter cette conditionnelle ?
Messages postés
2
Date d'inscription
jeudi 15 août 2013
Statut
Membre
Dernière intervention
16 septembre 2015

pour une idee tu doit recuperer l'adresse ip puis le decouper et l'insérais dans une tableaux de 4 case.
une fois enregistrer tu peut commencer a conditionnais chaque case.
comme le voyer votre plage commence de 202.90.64.0 qui est un l'adressse ip reseaux ce qui fait que le premiere ip est le 202.90.65.0 jusqu'au 202.90.93.255 car le 202.90.94.255 est un ip de broad cast. donc si on vois pour les deux premiere octet c facile :
Si tab[0]!=202 donc c pas lapeine de continuer
Si non tu continue -->
Si tab[1]!=90 pas la pein de continue car il fait pas parti du plage et
sinon tu continue -->
si tab[2]>=65 ou tab[2]<=93 tu continue, tous les nombre qui se trouve sn dns la plage.
sinn tu quitte
si tab[3]>=0 ou tab[3]>=255 tu continue redirection vers l 'endroit maintenant
sinon tu quite.
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
Bonjour,

Le plus simple est de convertir l'IP en un long via ip2long() puis de simplement comparer la valeur retournée aux bornes (converties, elles aussi).

Donc tu auras un truc comme ça (non testé) :

<?php
$test = ip2long($_SERVER['REMOTE_ADDR']);

$inf = ip2long('202.90.64.0');
$sup = ip2long('202.90.95.255');

if ($test>=$inf && $test<=$sup)
    echo 'ok, à rediriger';
else
    echo 'pas dans le range';
?>