La orientación por IP es complicada son base de datos de los bloques de IP por país que requieren de una actualización constante, en este caso Maxmind tiene una oferta actualizada y bastante precisa, tecnología de geolocalización de forma gratuita.
Como usar la base de datos de maxmind
Primero descargamos la base de datos aquí (Download binary format for use with API code). Descomprimimos el archivo para obtener el archivo GeoIP.dat.
Aquí encontramos APIs para varios lenguajes para este caso descargamos la que corresponde al lenguaje PHP. Descargar. Descomprimimos y buscamos el archivo geoip.inc.
En una carpeta en nuestro servidor incluimos:
Primero descargamos la base de datos aquí (Download binary format for use with API code). Descomprimimos el archivo para obtener el archivo GeoIP.dat.
Aquí encontramos APIs para varios lenguajes para este caso descargamos la que corresponde al lenguaje PHP. Descargar. Descomprimimos y buscamos el archivo geoip.inc.
En una carpeta en nuestro servidor incluimos:
- GeoIP.dat
- geoip.inc
- index.php (creamos un archivo php para incluir el código de prueba)
Incluimos el siguiente código en el archivo index.php
Esto nos debe imprimir como resultado dos letras correspondientes al código ISO del país en el que me encuentro. Podemos modificar este código de muchas formas, o experimentar con los ejemplos que se incluyen dentro de las descargas anteriores para conocer como sacar el mejor provecho de está herramienta.
Aquí incluimos una pequeña variación de código, para lograr otro objetivo:
require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
print "Estoy en ".$country;
Esto nos debe imprimir como resultado dos letras correspondientes al código ISO del país en el que me encuentro. Podemos modificar este código de muchas formas, o experimentar con los ejemplos que se incluyen dentro de las descargas anteriores para conocer como sacar el mejor provecho de está herramienta.
Aquí incluimos una pequeña variación de código, para lograr otro objetivo:
require_once("geoip.inc");
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
if($country_code == 'US')
{
Código para estados unidos
}
elseif($country_code == 'MX')
{
Código para México
}
elseif($country_code == 'CO')
{
Código para Colombia
}
else {
Código para los demás países
}
Si al utilizar esté código reciben un mensaje en el servidor como este: Warning: fopen(GeoIP.dat) [function.fopen]: failed to open stream: No such file or directory in /absolute/path/to/geoip.inc on line 399 Can not open GeoIP.dat
Remplace en el código geoip_open("GeoIP.dat",GEOIP_STANDARD) por geoip_open("/absolute/path/to/GeoIP.dat",GEOIP_STANDARD);
Remplace en el código geoip_open("GeoIP.dat",GEOIP_STANDARD) por geoip_open("/absolute/path/to/GeoIP.dat",GEOIP_STANDARD);
No hay comentarios
Publicar un comentario
Desea contactar con nosotros, deje un comentario y pronto le daremos respuesta.