Instalar MaxMind GeoIP en CentOS

Vamos a redactar un pequeño manual de como instalar el geolocalizador de IP de MaxMind, hay varias forma de tener acceso desde PHP a estos datos, nosotros vamos a realizar la instalación con mayor rendimiento que es como módulo de Apache:
yum list GeoIP*
Deberías ver algo así:
Finished
Available Packages
GeoIP.x86_64                1.4.7-0.1.20090931cvs.el5                  epel
GeoIP-data.x86_64         20090201-1.el5.centos                       extras
GeoIP-devel.x86_64        1.4.7-0.1.20090931cvs.el5                  epel
Procedemos a instalar todos los paquete, de ellos, GeoIP-data es el archivo que geolocaliza direcciones IP.
yum install GeoIP*
...
...
...
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing     : GeoIP                                                                           1/3
 Installing     : GeoIP-devel                                                                     2/3
 Installing     : GeoIP-data                                                                      3/3

Installed:
 GeoIP.x86_64 0:1.4.7-0.1.20090931cvs.el5             GeoIP-data.x86_64 0:20090201-1.el5.centos
 GeoIP-devel.x86_64 0:1.4.7-0.1.20090931cvs.el5
Una vez instalados los módulos, procedemos a instalar el módulo para Apache 2.X, para ello necesitaremos tener instalado el comando apxs, parte del paquete httpd-devel, si no lo tenemos instalado basta con instalarlo desde yum.
cd /tmp
wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz
tar -xvzf mod_geoip2_1.2.5.tar.gz
apxs -i -a -L/usr/lib -I/usr/include -lGeoIP -c mod_geoip.c
El último comando nos compila el módulo para nuestra versión de Apache, comprobar donde lo ha copiado pues nos hará falta en el siguiente paso para activar el módulo en Apache, en nuestro caso lo deposita en /usr/lib64/httpd/modules/mod_geoip.so. Editamos la configuración de Apache para añadir el módulo mod_geoip y activar la geolocalización.
LoadModule geoip_module /usr/lib64/httpd/modules/mod_geoip.so
...
...
<IfModule mod_geoip.c>
  GeoIPEnable On
#Ruta hacia la base de datos con las IP's geolocalizadas
  GeoIPDBFile /var/lib/GeoIP/GeoIP.dat
</IfModule>
Listo, tenemos instalado el soporte de GEO IP, este es un ejemplo para poder obtener en PHP.
<?php
$country_code = apache_note("GEOIP_COUNTRY_CODE");
$country_code3 = apache_note("GEOIP_COUNTRY_CODE3");
$country_name = apache_note("GEOIP_COUNTRY_NAME");
$geoip_city_name = apache_note("GEOIP_CITY_NAME");
$geoip_city_postal_code = apache_note("GEOIP_CITY_POSTAL_CODE");
$geoip_city_latitude = apache_note("GEOIP_CITY_LATITUDE");
$geoip_city_long_latitude = apache_note("GEOIP_CITY_LONG_LATITUDE");
$geoip_city_dma_code = apache_note("GEOIP_CITY_DMA_CODE");
$geoip_city_postal_code = apache_note("GEOIP_CITY_POSTAL_CODE");
$geoip_city_area_code = apache_note("GEOIP_CITY_AREA_CODE");


echo "
IP: {$_SERVER['REMOTE_ADDR']} </br>
GEOIP_COUNTRY_CODE: <strong>$country_code</strong> </br>
GEOIP_COUNTRY_CODE3: <strong>$country_code3</strong> </br>
GEOIP_COUNTRY_NAME: <strong>$country_name</strong> </br>
GEOIP_CITY_NAME: <strong>$geoip_city_name</strong> </br>
GEOIP_CITY_POSTAL_CODE: <strong>$geoip_city_postal_code</strong> </br>
GEOIP_CITY_LATITUDE: <strong>$geoip_city_latitude</strong> </br>
GEOIP_CITY_LONG_LATITUDE: <strong>$geoip_city_long_latitude</strong> </br>
GEOIP_CITY_DMA_CODE: <strong>$geoip_city_dma_code</strong> </br>
GEOIP_CITY_POSTAL_CODE: <strong>$geoip_city_postal_code</strong> </br>
GEOIP_CITY_AREA_CODE: <strong>$geoip_city_area_code</strong> </br>
";

Compartir:
  • Print this article!
  • Facebook
  • Twitter
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • Digg


COMENTARIOS

Gracias David,

Un tutorial muy bien explicado y sencillo.

Un saludo.


PARTICIPA EN LA CONVERSACIÓN

Introduce tu información personal o utiliza tu cuenta de twitter o facebook para acceder

 






SIGUENOSEN: