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.

Publicado el 27 de Abril de 2016
Compartir

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...

Curso de IPv6

Curso de IPv6

2 horas y 39 minutos · Curso

Con el curso de IPv6 conoce las principales características del protocolo IPv6 y aprender a configurar los equipos con direcciones IPv6 de forma manual o …

  • Redes
Tecnología

Agotamiento de las direcciones IPv4

11 Junio 2018 Alberto Molina
Redes TCP/IP

Curso de fundamentos de Redes: TCP/IP

4 horas y 48 minutos · Curso

Consigue comprender las características principales de la pila de protocolos de Internet TCP/IP para ser capaz de configurar y utilizar configuraciones de red básicas.

  • Redes
Artículos
Ver todos