Redirection en fonction de l'adresse IP du visiteur

leroyubu - 7 févr. 2013 à 05:36
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 16 août 2013 à 09:51
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

sylvain64520 Messages postés 130 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 7 juin 2013
7 févr. 2013 à 08:46
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.
0
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 ?
0
aamprod Messages postés 2 Date d'inscription jeudi 15 août 2013 Statut Membre Dernière intervention 16 septembre 2015
Modifié par aamprod le 15/08/2013 à 13:19
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.
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 1
16 août 2013 à 09:51
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';
?>
0
Rejoignez-nous