Prendre un Café

L'espace d'expression de Nicolas Perriault

Aller au contenu | Aller au menu | Aller à la recherche

mardi 2 juin 2009

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é.

vendredi 23 mai 2008

Enkin, ou vivement demain

Je viens de tomber sur le projet Enkin, un logiciel de géopositionnement temps-réel basé sur Google Android, l'OS pour mobile de Google dont j'ai déjà parlé. Ce projet est impressionnant techniquement, mais surtout révolutionnairement pratique[1]. Le mieux est encore de regarder la vidéo de présentation du projet par ses concepteurs, qui parle d'elle-même :

Enkin on Vimeo.

Ils s'étaient inscrits au concours Android Developer Challenge, mais n'ont malheureusement pas été retenus dans la liste des finalistes. Par contre, il ont reçu un coup de fil de Google qui semble t-il est très intéressé :p

Souhaitons-leur tout le succès qu'ils méritent, et vivement demain.

Notes

[1] Imaginez une seconde l'outil intégré à des lunettes en mode HUD :o

mardi 29 janvier 2008

Un client de geolocalisation en cinq lignes de PHP avec l'API Google Maps

Google propose des choses vraiment intéressantes au travers de ses API, comme par exemple son méconnu (car planqué dans la doc) webservice HTTP de géolocalisation. L'idée ici est de récupérer la lattitude et la longitude d'un endroit géographique à partir de sa description, par exemple Paris, France ou encore 3 allée des allouettes, 35000 Rennes, France.

Il vous faut posséder au préalable une clé d'API Google, que vous pouvez obtenir gratuitement par là.

<?php
define('GOOGLE_API_KEY', 'your_google_api_key_here');
$wsurl = 'http://maps.google.com/maps/geo?q=%s&output=csv&key=%s';
$location = 'Paris, France';
$data = explode(',', file_get_contents(sprintf($wsurl, urlencode($location), GOOGLE_API_KEY)));
$coord = 200 === (int)$data[0] ? array((float)$data[2], (float)$data[3]) : null;
var_dump($coord);

Ce qui nous donne :

array(2) {
  [0]=>
  float(48.856667)
  [1]=>
  float(2.350987)
}

On prendra soin de cacher autant que faire se peut les résultats renvoyés par le webservice, afin de soulager les serveurs de Google et accessoirement de pas fusiller le crédit-requête associé à sa clé d'API.

Disclaimer : Ce billet n'est pas un appel au troll, je me doute qu'on peut faire la même chose en 3 lignes de Ruby, 2 lignes de Python et -10 lignes de Fotran77. C'est juste pour dire que les services Google, ça déchire quand même un petit peu.

mardi 25 avril 2006

J'aime les brocolis

Désolé pour le titre, j'ai plus d'imagination pour titrer les billets en vrac...

PS : ça devient vraiment n'importe quoi ces billets. Promis, bientôt je me recentre.

dimanche 20 novembre 2005

Aïe, pas Frappr

Frappr est un service de géolocalisation communautaire que j'ai découvert chez Tristan, permettant de localiser sur une carte les membres d'une même communauté, comme celle des utilisateurs de Firefox.

Juste pour rigoler, j'ai ouvert un compte pour Prendre un café, j'aimerai bien que vous y déposiez vos trombines : Buveurs de café :)

mardi 28 juin 2005

Une extension Firefox de geolocalisation via Google Maps

Je vous avais déjà parlé de géolocalisation, et notamment de l'excellente extension Firefox réalisée par Patrick H. Lauke, GeoURL.

Cette dernière version, même si le site n'en parle pas encore, vient de sortir en version 0.3 et permet la geolocalisation d'un site web via notamment l'outil cartographique dans le buzz, Google Maps, ainsi que d'autres outils en ligne du même accabit (MultiMap, Flickr nearby et Mapquest) :)

Il suffit de spécifier dans les options du plugin que vous désirez utiliser les services de Google Maps plutôt que ceux de geourl.org (par défaut), et un click sur l'icône du plugin vous redirigera vers la carte correspondante. Hélas, dans le cas de GM ce n'est pas la vue satellite qui est affichée, mais la vue en carte routière... pour le moment non-renseignée pour la France :-/

Si comme moi vous voulez afficher la vue satellitaire en français et non pas la carte routière en anglais, il faut - une fois l'extension GeoURL proprement installée - tapez about:config dans la barre d'adresse de Firefox pour accéder aux variables utilisateurs. Localisez la valeur geourl.destinations.2.url et renseignez-y la valeur http://maps.google.com/?sll=[LAT],[LONG]&t=k&hl=fr&spn=0.05,0.05.

Enjoy 8-)

dimanche 26 juin 2005

Googlus-Betrand

À l'instar de Dew qui a pris les devants, voici quelques images satellites belles/intéressantes/insolites captées par Google Maps, un peu à la manière de Yann Arthus-Bertrand. Je pourrais passer des heures à me balader sur notre planète bleue, tel un Gulliver des temps modernes :)

Vite, profitons du bel outil et des agences de voyage virtuelles avant que la censure ne fasse peut-être son office ;)

samedi 25 juin 2005

Google Maps : au tour de la France

Terre Google Maps a ajouté la France à son tableau de chasse sattelitaire (ne souriez pas, c'est votre cuir chevelu qui est filmé).

  • J'habite ici (Ouaaaah, c'est somptueux).
  • Je travaille (Ouaiiiiis, ça donne trop envie).
  • Mes racines sont et .