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:
  1. // obtener ip usuario
  2. require 'includes/functions.php';
  3. $ip = getUsuIP();
  4.  
  5. // geolocalizar usuario
  6. require 'includes/maxmind/geoipcity.inc';
  7. $gi = geoip_open( 'includes/maxmind/GeoLiteCity.dat', GEOIP_STANDARD );
  8. $record = geoip_record_by_addr( $gi, $ip );
  9. geoip_close($gi);
  10. if(!$record)die();
  11.  
  12. // geolocalizacion inversa
  13. require 'config.php';
  14. $coords = $record->latitude . ',' . $record->longitude;
  15. $url = 'http://maps.google.com/maps/geo?q=' . $coords . '&output=xml&key=' . GOOGLE_API_KEY . '&oe=utf-8';
  16. $xml = simplexml_load_file( $url );
  17.  
  18. if(isset($xml->Response->Placemark)) echo $xml->Response->Placemark[0]->address;

PHP      7 Marzo, 2009      2179 lecturas      6 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









Additional comments powered by BackType