Mapas de OpenStreetMaps con GeoIP simples

Hace ya un tiempo monte un sistema de mapas de Google Maps simple para que cualquier persona con conocimientos básicos pudiese implementarlo.

Hoy en el trabajo ha surgido la posibilidad de implementar mapas en una de las aplicaciones que está en proyecto y he aprovechado para implementar de forma muy sencilla OpenStreetMaps con GeoIP para el posicionamiento.

El funcionamiento es muy sencillo, se le pasa a una función una IP o un host y ésta nos devuelve un mapa de OpenStreetMap posicionado según la posición de esa IP.

Para preparar nuestro servidor simplemente haremos los siguientes pasos (Versión Debian, claro):

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

mkdir /usr/share/GeoIP/

gunzip GeoLiteCity.dat.gz /usr/share/GeoIP/
gunzip GeoIP.dat.gz /usr/share/GeoIP/

ln -s /usr/share/GeoIP/GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

Además, nuestro servidor necesitará el soporte de GeoIP en PHP. Esto es muy sencillo en Debian

aptitude install php5-geoip

/etc/init.d/apache2 restart

Listo, ya tenemos nuestro servidor preparado para utilizar GeoIP. Ahora simplemente llamamos a la función que he creado con la ip o el host que queremos localizar. Esto es un ejemplo de tres peticiones distintas:

osm_map(‘meneame.net’);
osm_map(‘130.206.130.95’);
osm_map(‘sukiweb.net’);

Y esta es una imágen del resultado:
osm1

La función es realmente simple, se puede descargar de aquí:

Otros ejemplos de uso:

//Mapa de BolsaPHP (400×400)
osm_map(‘bolsaphp.sukiweb.net’, ‘400’, ‘400’);

//Mapa de la DNS de telefónica 195.235.113.3 con debug
osm_map(‘195.235.113.3’, ‘400’, ‘400’, TRUE);

¿Que os parece? ¿Simple verdad? Pasadme los enlaces si lo utilizais en algún sitio y evidentemente, sed libres de mejorar y optimizar el código. :)

Publicado por

Suki_

CDO en Grupo Logitravel, proyectos I+D y BigData. Jugando con bits y software libre desde hace ya demasiado tiempo...

5 comentarios sobre “Mapas de OpenStreetMaps con GeoIP simples”

  1. Bueno @humano, si te fijas bien en la captura de pantalla (y en el código fuente), podrás ver que sí, que puedes mostrar los nombres de las ciudades y paises del host solicitado.

    Si además activas la opción de debug, verás todas las opciones posibles, latitud, longitud, etc…

  2. Pingback: meneame.net
  3. Buenas,
    Me parece muy interesante. Lo usaré son duda. Ya te escribiré los sitios para que puedas referenciarlos.

    Muchas gracias por compartirlo.

    Jonás

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.