Fork me on GitHub

Miquel Camps Orteza

Soy programador web. Estoy especializado en desarrollo web (php, js). Estoy aprendiendo a desarrollar apps para iphone/ipad.
Organizo betabeers en Madrid.
Sobre mí     Metas     Hacks     Contactar     LinkedIn     Twitter    
Inicio

Geolocalizar usuario con la IP

Todavía es una ciencia imperfecta, en la primera versión que lancé de comil.us usaba la API AJAX de google, pero como fallaba a mucha gente al poco tiempo lo cambié a GeoLiteCity de maxmind, almenos para detectar el país y la ciudad.

En la última versión de comil.us he añadido la funcionaldiad de geoposicionar la calle del usuario (lo he intentado jeje), para ello uso GeoLiteCity para encontrar las coordenadas y luego la geolocalización inversa de google maps para recuperar la dirección completa.

Os dejo una parte del código que utilizo, si conocen una forma más precisa no estaría demás que la comentaran jeje:

[php]// obtener ip usuario
require ‘includes/functions.php’;
$ip = getUsuIP();

// geolocalizar usuario
require ‘includes/maxmind/geoipcity.inc’;
$gi = geoip_open( ‘includes/maxmind/GeoLiteCity.dat’, GEOIP_STANDARD );
$record = geoip_record_by_addr( $gi, $ip );
geoip_close($gi);
if(!$record)die();

// geolocalizacion inversa
require ‘config.php’;
$coords = $record->latitude . ‘,’ . $record->longitude;
$url = ‘http://maps.google.com/maps/geo?q=’ . $coords . ‘&output=xml&key=’ . GOOGLE_API_KEY . ‘&oe=utf-8′;
$xml = simplexml_load_file( $url );

if(isset($xml->Response->Placemark)) echo $xml->Response->Placemark[0]->address;[/php]

marzo 7, 2009
Sigueme en twitter Suscribete por RSS Suscribete por email
Temas relacionados
Deja un comentario







Comentarios
  1. Iñaki

    Perfecto lo que se dice perfecto no es. A mi me coloca en arroyomolinos xD

    Muy guapa la app movil ;)


  2. gruncho

    A mi me coloca donde no debe, te lo aseguro.


  3. gruncho

    **** ADD

    Y voy sobrio, que conste


  4. Frank

    hola pagaste algo por utilizar la api de GeoLiteCity o como lo hiciste?


  5. gafeman

    @Frank la version Lite es gratis aunque la de pago tambien la puedes encontrar en google, pero quizas la base este desactualizada

    tambien puedes usar estas APIs sin tener que subir ningun script en tu servidor:
    http://ipinfodb.com/ip_location_api.php
    http://www.el33.es/tag/geolocalizar-ip


  6. Frank

    Gracias gafeman lo voy a tener en cuenta para un proyecto que tengo en la Universidad


  7. David

    Funciona bién este script? esque en MaxMind me dice que estoy a 20km de donde vivo!