IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Traduction adresse ip /pays


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut Traduction adresse ip /pays
    Bonjour,

    Je cherche à récupérer le pays du visiteur afin de géolocaliser mon site.
    La récupération de l'IP fonctionne bien, mais le pays ne s'affiche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
     
    function getIP() {
    $ip;
    if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
    else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
    else $ip = "UNKNOWN";
    return $ip;
    }
     
    $ip1 = getIP($ip);
    echo $ip1;
    // -------------------------------jusque là tout va bien--------------------------------------------------
     
    /* transformation IP */
    $dotted = preg_split( "/[.]+/", $ip1);
    $ip2 = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
    $sql = "SELECT * FROM iptocountry WHERE $ip2 BETWEEN 'IP_FROM' AND 'IP_TO'";
    $result = mysql_query($sql)or die(mysql_error());
     
    if(mysql_num_rows($result)>0)
     
    echo $result['COUNTRY_CODE'];
     
    else $pays = "Impossible de faire le lien ip/pays";
    mysql_close($link);
     
    ?>
    Avez vous une idée de ce qui ne marche pas ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = "SELECT * FROM iptocountry WHERE $ip2 BETWEEN IP_FROM AND IP_TO";
    $result = mysql_query($sql)or die(mysql_error());
     
    if( mysql_num_rows($result)>0 ){ 
       $tab = msql_fetch_array($result);
       echo $result['COUNTRY_CODE'];
     
    }else{
       echo "Impossible de faire le lien ip/pays";
    }
    mysql_close($link);
    Il manquait un mysql_fetch_array afin de recuperer les resultats (enfin là ta requete n'est censee renvoyer qu'un seul resultat.
    J'ai enleve egalement les quotes autour de IP_FROM et IP_TO car je ne pense pas qu'elles soient utiles.

    En esperant que cela suffise.

Discussions similaires

  1. savoir pays à parrtir adresse ip
    Par midosd dans le forum ASP
    Réponses: 1
    Dernier message: 16/04/2009, 21h20
  2. Convertir une adresse ip en pays
    Par TheJoe dans le forum Général Java
    Réponses: 1
    Dernier message: 04/09/2008, 22h51
  3. Connaitre le pays a partir de l'adresse IP
    Par sitirna dans le forum C++Builder
    Réponses: 8
    Dernier message: 13/11/2006, 13h42
  4. Pays et Adresse IP
    Par kotoji dans le forum Protocoles
    Réponses: 10
    Dernier message: 15/08/2006, 21h01
  5. connaitre le pays avec une adresse IP ?
    Par stanley dans le forum Développement
    Réponses: 7
    Dernier message: 27/06/2006, 01h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo