No has iniciado sesión
Conectar al sistema | Registrar usuario
Categorías Articulo
 
10 votos
Saber el país / región del visitante
 
Gracias a la dirección IP del visitante y utilizando una base de datos de direcciones IP en la que se informa del país de origen, podemos resolver el país del visitante con PHP.

Para hacerlo, descargaremos la base de datos y la descomprimiremos, tambien bajaremos la librería con las funciones que usaremos (disponible tambien en español), subiremos los dos archivos descomprimidos a nuestro servidor y los usaremos de la siguiente manera:
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
<?php 
// Incluimos la librería 
include("geoip.inc")
// Abrimos el localizador indicando 
// el archivo de datos y el método 
$gi geoip_open("GeoIP.dat",GEOIP_STANDARD)
// Resolvemos la direccion IP 
$ip $_SERVER['REMOTE_ADDR']
// Resolvemos y mostramos el país 
echo geoip_country_name_by_addr($gi$ip)
// Cerramos el localizador 
geoip_close($gi)
?>
 
Esto nos devolverá el nombre del país de la IP que se ha consultado (por ejemplo: España), pero si en lugar de geoip_country_name_by_addr, usamos geoip_country_code_by_addr o geoip_country_id_by_addr, obtendremos un codigo de dos letras o numérico respectivamente (por ejemplo: ES y 67) como podemos comprovar aquí.

También podremos saber la región del usuario utilizando la base de datos GeoLite City y las librerías geoip.inc, geoipcity.inc y geoipregionvars.php que podemos descargar de la web de maxMind, entonces haremos:
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
013 
014 
<?php 
// Incluimos la librería 
include("geoipcity.inc")
// Abrimos el localizador indicando 
// el archivo de datos y el método 
$gi geoip_open("GeoLiteCity.dat",GEOIP_STANDARD)
// Resolvemos la direccion IP 
$ip $_SERVER['REMOTE_ADDR']
// Creamos el objeto 
$record geoip_record_by_addr($gi,$ip)
// Resolvemos y mostramos la región 
echo $record->city
// Cerramos el localizador 
geoip_close($gi)
?>
 
 
 
¿? Resolver dudas
Si tienes problemas o dudas con el contenido del artículo no dudes a preguntar en los foros de PHP de Programación Web indicando el artículo al que te refieres.
 
Comentarios
28/04/06 Comentario 518
Yo soy el que pidio x provincias. Gracias por todo. Lo estuve probando (el de ciudades) pero hay un error:hay que CAMBIAR el nombre "GEOLITECITY.dat" por "GEOIPCITY.dat" (que es lo que está en el código). Igual me dá una provincia del pais pero que no corresponde con la realidad (lo probe en argentina y españa).
24/03/07 Felicidades con Gracias
Hola Colega, muchas felicidades y muchas gracias por el articulo, está muy bueno y estoy seguro le va a servir a muchos otros colegas como a mi.
 
Redes Sociales
Programación Webon

Compartir en Google Plus