Utiliser les fonctions GeoIP de PHP sous Ubuntu
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é.
Ce billet intitulé Utiliser les fonctions GeoIP de PHP sous Ubuntu a été rédigé par Nicolas Perriault et publié sur le blog Prendre un Café sous licence Creative Commons BY-NC-SA.