Mon Dieu, les billets techniques refleuriraient-ils au printemps ? Si vous désirez récupérer des informations géographiques à partir de l’adresse IP (ou du hostname) d’un utilisateur, vous pouvez utiliser les fonctions fournies par l’extension PECL GeoIP.
Voici la procédure d’installation sur une Ubuntu 8.04:
$ sudo -s # apt-get install build-essential php5-dev php5-cli libgeoip-dev libgeoip1 php-pear # pecl install geoip
Si toiut s’est bien passé :
# echo "extension=geoip.so" >> /etc/php5/cli/php.ini
Si vous utilisez Apache comme serveur :
# echo "extension=geoip.so" >> /etc/php5/apache2/php.ini
Il faut également installer la base GeoIPCity de Maxmind :
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz # gunzip GeoLiteCity.dat.gz # mv GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
Vous pouvez maintenant tester l’extension avec une ligne du genre[1] :
$ echo "<?php var_dump(geoip_record_by_name('209.202.168.**'));"|php
Ça donne ici :
array(11) { ["continent_code"]=>
string(2) "NA"
["country_code"]=>
string(2) "US"
["country_code3"]=>
string(3) "USA"
["country_name"]=>
string(13) "United States"
["region"]=>
string(2) "NC"
["city"]=>
string(4) "Cary"
["postal_code"]=>
string(5) "27511"
["latitude"]=>
float(35.7********)
["longitude"]=>
float(-78.7*******)
["dma_code"]=>
int(560)
["area_code"]=>
int(919)
}
Enjoy.
Notes
[1] J’ai volontairement masqué certaines informations pour d’évidentes raisons de confidentialité.





Derniers commentaires