OpenWebinars

Redes y Sistemas

Obtener dirección IP del visitante

Aprende con este sencillo videotutorial a como obtener la dirección IP de un visitante de tu página Web, aunque hasta venga con proxy.

Vicente Herrera

Vicente Herrera

Experto en Desarrollo

Lectura 1 minutos

Publicado el 27 de abril de 2016

Compartir

    Tabla de contenidos

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;
Compartir este post

También te puede interesar

Icono de la tecnología
Curso

Curso de IPv6

Intermedio
2 h. y 39 min.

Con el curso de IPv6 conoce las principales características del protocolo IPv6 y aprender a configurar los equipos...

Alberto Molina
4.3
Agotamiento de las direcciones IPv4
Blog

Agotamiento de las direcciones IPv4

Motivos por los que comenzar a utilizar direcciones en IPv6 ante el agotamiento de direcciones en IPv4.&nbsp;Definiremos qué es una dirección IPV4,...

Alberto Molina
Icono de la tecnología
Curso

Redes TCP/IP

Principiante
4 h. y 48 min.

Consigue comprender las características principales de la pila de protocolos de Internet TCP/IP para ser capaz de configurar...

Alberto Molina
4.4