Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Obtener dirección IP del visitante

Vicente Herrera
  • Escrito por Vicente Herrera el 27 de Abril de 2016
  • 1 min de lectura | Programación
Obtener dirección IP del visitante
El reproductor de video será cargado en breves instantes.

La información es poder, y conocer todo lo que podamos de un visitantes a nuestra página siempre es útil.

Uno de los datos más útiles para analizar al visitante es su dirección IP . Este número está determinado por su conexión a Internet. En algunos casos cambiará al reiniciar el router, pero se mantendrá invariable durante bastante tiempo. Es posible conocer la ubicación geográfica de un usuario a partir de su IP.

Una llamada tan sencilla como esta nos dará directamente la dirección IP del usuario :

$ip = $_SERVER['REMOTE_ADDR'];

Existe sin embargo un problema. El usuario puede estar navegando a través de un servidor proxy . Este tipo de servidores sirven de intermediarios, obteniendo las páginas que el usuario requiere para pasárselas a él. De esta manera, la IP real del usuario queda oculta por la IP del servidor proxy.

Los motivos para usar un proxy son por velocidad (el servidor proxy guarda en cache muchas peticiones, por lo que puede enviar directamente la copia en cache de una página a través de una red interna rápida, en lugar de descargarla por internet en una conexión lenta), por obtener una IP de un país específico donde esté ubicado el servidor, o directamente para intentar enmascarar la IP del navegante.

En algunos casos, cuando la privacidad no es lo esencial en la configuración del servidor proxy, éste etiquetará las conexiones con un marcado indicando que se trata de un intermediario en favor de otra IP, de manera que podemos intentar leer esta información.

Diferentes servidores proxy utilizarán nomenclaturas distintas, por lo que tenemos que comprobar varias alternativas para intentar detectar si se trata de este tipo de conexiones.

A continuación, el código del sencillo ejemplo que nos permitirá conocer la IP del visitante , teniendo en cuenta si se utiliza un proxy que no enmascare totalmente la IP del usuario

<?php

// Intentamos primero saber si se ha utilizado un proxy para acceder a la página,
// y si éste ha indicado en alguna cabecera la IP real del usuario.
if (getenv('HTTP_CLIENT_IP')) {
  $ip = getenv('HTTP_CLIENT_IP');
} elseif (getenv('HTTP_X_FORWARDED_FOR')) {
  $ip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_X_FORWARDED')) {
  $ip = getenv('HTTP_X_FORWARDED');
} elseif (getenv('HTTP_FORWARDED_FOR')) {
  $ip = getenv('HTTP_FORWARDED_FOR');
} elseif (getenv('HTTP_FORWARDED')) {
  $ip = getenv('HTTP_FORWARDED');
} else {
  // Método por defecto de obtener la IP del usuario
  // Si se utiliza un proxy, esto nos daría la IP del proxy
  // y no la IP real del usuario.
  $ip = $_SERVER['REMOTE_ADDR'];
}

echo "Su IP parece ser: ".$ip;

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars