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);
-
-
// 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 );
-
Perfecto lo que se dice perfecto no es. A mi me coloca en arroyomolinos xD
Muy guapa la app movil
A mi me coloca donde no debe, te lo aseguro.
**** ADD
Y voy sobrio, que conste
hola pagaste algo por utilizar la api de GeoLiteCity o como lo hiciste?
@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
Gracias gafeman lo voy a tener en cuenta para un proyecto que tengo en la Universidad