Geolocalización por paises con PHP.

Base de datos de IP-Pais.

En el sitio web http://software77.net/geo-ip/ encontrarás una base de datos gratuita IP-pais . En función de la IP de origen de la visita, es posible determinar en php, consultando la variable de servidor: $_SERVER["REMOTE_ADDR"]; el pais de procedencia de dicha IP buscandola en la base de datos. Dicha base de datos se puede descargar actualizada en formato CSV, que si bien es posible manipular por si sola, es recomendable convertirla a otro formato mas manejable en un entorno de servidor web. Personalmente yo mismo la vengo utilizando ya hace años, y la aconsejo, pues su manejo es muy sencillo, y los resultados obtenidos los considero bastante óptimos. Incluso no es necesario importarla a una base de datos MySQL o similar. Podemos trabajar con ella directamente en PHP, gracias a la clase realizada por de77.com . Desde de77, nos proponen convertir el fichero csv de la base de datos a varios archivos PHP, de modo que podemos consultar el pais de procedencia mediante una función PHP, sin hacer uso de ninguna base de datos en nuestro servidor como MySQL.

No voy a reproducir aquí de nuevo la forma de conseguirlo, pero es necesario para poder implementar nuestro sistema de geolocalización por pais, si queremos utilizar PHP, que conviertas la base de datos IP-Pais, tal y como se indica en Convertir base de datos IP-Pais, a estructura de ficheros PHP de de77.com. Descarga e instala la clase IP2Country. Sigue las instrucciones de instalación para generar la estructura de ficheros PHP que contiene dividida la base de datos IP-Pais. Utiliza esta misma clase para realizar las consultas de IP. Y no olvides periodicamente (con la frecuencia que tu estimes necesaria), repetir este proceso para actualizar la base de datos de IP-Pais con las nuevas incorporaciones.

Uso de la base de datos IP-Pais con otros lenguajes.

En la web de software77.net, encontrarás un apartado con enlaces a otros sitios web donde han desarrollado soluciones parecidas para otros entornos de programación como JAVA, Perl, C , ....  las encontrarás en GEO IP Database community contributions.

Consultar el pais de procedencia para una IP con PHP.

Si instalaste correctamente la base de datos IP-Pais para PHP, puedes consultar el pais de procedencia de una IP con un script tan sencillo como este.

<?php
  //Geolocalización:
  include('/ruta_a_Ip2Country.php_en_tu_servidor/Ip2Country.php');
  $user_ip=$_SERVER['REMOTE_ADDR'];
  $i = new Ip2Country;
  $i->load($user_ip);
  $pais_localizacion=$i->countryCode;
  $pais=$i->country;
  echo "Tu IP: $user_ip . Codigo de pais para IP: 
        $pais_localizacion . Pais de origen: $pais";
?>

Demo de geolocalización.

Si deseas omitir el paso de generar la estructura de ficheros de la base de datos IP-Pais, aquí puedes descargar la estructura ya generada con la base de datos de IPs del dia 18 de Julio de 2011.

php_db_18-07-2011.tar.gz


Es importante que no olvides actualizar la ruta de la base de datos del fichero Ip2Country.php a la ubicación de instalación de la base de datos convertida a php.

En el fichero Ip2Country.php actualiza la línea:

  public $dir = 'php_db/';

por la ubicación en tu servidor (si el fichero ip2Country.php está ubicado en una ruta diferente a la de la carpeta php_db)

  public $dir = '/ruta_absoluta_en_tu_servidor/php_db/';

Y esto es todo de momento. Espero que los conceptos para la geolocalización con PHP hayan quedado lo suficientemente claros. Y si no es así utiliza nuestro sistema de comentarios para formular tus dudas.

Un saludo amig@!

« Página Anterior