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 🙂