Manual de PHP

 
 
 

Mapa Web

 
borde   borde
Portada arrow Lista de Códigos PHP arrow Detectar país del visitante

 

Detectar país del visitante Imprimir E-mail
Script para conocer el país del visitante de tu página web en php.

Una de las grandes necesidades de todo desarrollador web radica al momento de conocer el país del visitante bien sea para redireccionarlos a módulos o páginas con particularidades o características propias de cada determinación, entre otras funciones que se pueden desarrollar en el entorno.

Ejemplo: Si tenemos una página de productos y catálogos (Comercio Web) y deseamos mostrare al visitante el precio del referido producto o artículo expresado monetariamente en su moneda local.

Entre otras infinidades de particularidades.

En realidad el proceso de la detección del país a través del nick se realiza a partir de la dirección IP devuelta por superglobales como $_SERVER['REMOTE_ADDR'], tomando como soporte o base una serie criterios de posibilidades almacenados lógicamente en archivos de base de datos, para su posterior validación y deducción de sus cuatros componentes esenciales menores todos a 255.

En Php solo existen alguna funciones que permiten obtener información acerca de maquinas conectadas a una red especifica por medio de las Funciones de Red, pero no creamos que una función o un par de funciones nos harán todo el trabajo; por el contrario solo serán bases para todo el ensamblaje.

Ciertamente la empresa Maxmind, desarrolladora por excelencia de este tipo de herramientas con soporte para diferentes tecnologías “GeoIp”, logro solucionar este gran problema con un 95% de efectividad con un conjunto de funciones y un archivo de bases de datos.

Para poder utilizar esta herramienta deberemos descargar la base de datos:
GeoIP.dat.gz

Biblioteca de vínculos y funciones:
Geoip.inc

Fianlemente realizaremos un test con las siguientes lineas:

<?
require("geoip.inc"); /*requerimos la biblioteca o liberia */
$abir_bd = geoip_open("GeoIP.dat",GEOIP_STANDARD); /* apertura y lectura del archivo utilizando la constante GEOIP_STANDARD como forma de lectura que adquiere valor en geoip.inc */
/* imprimimos el nick del país */
echo geoip_country_name_by_addr($abir_bd, $_SERVER['REMOTE_ADDR']);
/* liberamos memoria cerrando el resorce devuelto por $abir_bd de la apertura*/
geoip_close($abir_bd);
?>


Desventajas y Sugerencias:

Seria un gravísimo error que incluyeramos estas lineas en todas nuestra páginas, recordemos que cada vez que esta se carge llamara a si mismo el archivo geoip.inc y GeoIP.dat, este ultimo supera los 700 Kb de tamaño y puede considerablemente extender el tiempo de carga de la página.

Sugerencias:
Podemos almacenar el valor del nick o código del país en una session ($_SESSION) preferiblemente, o en su defecto en COOKIES; para que de este modo solo se lea una vez ya que lógicamente el visitante no cambiara de IP a cada vez que refresque o navegue en una página.

Emmanuel García De Caro
http://www.blasten.com/mostrar.php/articulos/descarga/18995/?accion=recomendar

 

 
Portada
Capítulos del Manual de PHP
Introducción a PHP
Variables
Mi Primer Script PHP
Operadores en PHP
Estructuras de Control
Funciones en PHP
Inclusión de código
Matrices (array)
Cadenas de Caracteres
Clases
Fechas
Entrada y Salida
Operaciones con Ficheros
El lenguaje SQL y PHP
Conexión con MySQL
Sesiones
Formularios con PHP
Practicar en línea
Lista de prácticas en línea
FAQ
Preguntas frecuentes
Códigos PHP
Lista de Códigos PHP
Foros
Foros PHP
Otros Manuales
Manuales de otros lenguajes
 
   
 
 
Alojamiento web en Hostalia