Déterminer le pays avec l’ip

25 juillet 2014 nakama

Développement

(Cet article a été écrit il y a très longtemps, dans une galaxie très très lointaine)

Aujourd’hui on va voir comment connaitre le pays de l’utilisateur grâce à son IP.

Ce qu’il nous faut

– la library geoip (sur github par exemple)
– les petits fichiers (de base de données) GeoIP.dat et GeoIPv6.dat (sur github aussi)

Après avoir récupéré les fichiers c’est bientôt fini.

Place au code

function IpDetection($ip){

    include("libs/geoip.inc");

    // on teste l'ip pour savoir si c'est une ipv6
    // et dans ce cas on charge les fichiers correspondant
    if(filter_var($ip, FILTER_VALIDATE_IP,FILTER_FLAG_IPV6)) {
        $gi = geoip_open("libs/GeoIPv6.dat", GEOIP_STANDARD);
        $name = geoip_country_name_by_addr_v6($gi, $ip);
    }else{
        $gi = geoip_open("libs/GeoIP.dat", GEOIP_STANDARD);
        $name = geoip_country_name_by_addr($gi, $ip);
    }

    return $name;
}

$pays = IpDetection($iptest);

// on affiche le nom du pays
echo $pays;

Les lignes 8 et 11 sont importante car elles chargent le bon fichier pour des IPv6 ou IP.

Les lignes 9 et 12 récupèrent le nom du pays par rapport à l’IP. La fonction pour l’IPv6 est un peu différente que pour l’autre.

Et voila c’est fini.

Sur le github il y a d’autres fichiers de base de données, à vous de voir ce dont avez besoin et amusez vous 🙂

Mots-clés associés à cet article :

Retrouvez d'autres articles par catégories