Re: [PHP-ES] Obtener IP real del Visitante

[email protected] (Lucas Crisman)
Newsgroups php.general.es
Message-ID <[email protected]>
Hahmael:

Deberías tener en cuenta que estas claves del array $_SERVER no siempre se encuentran presentes. La clave HTTP_X_FORWARDED_FOR es utilizada para detectar si el cliente ha ingresado al sitio a traves de un proxy http, aunque también podría estar presente en caso de no ingresar por proxy. Por lo tanto lo ideal sería que previamente utilices la funcion isset().

Desconozco de qué depende que se encuentren "seteadas" o no, también ignoro la diferencia entre las claves HTTP_CLIENT_IP y HTTP_REMOTE_ADDR, pero deberías tener en cuenta que no siempre se encuentran presentes (o al menos en mi experiencia, muchas veces me he encontrado con la ausencia de HTTP_CLIENT_IP Y HTTP_X_FORWARDED_FOR).

Por otro lado, a modo de corrección, te aclaro que el valor de la variable HTTP_REMOTE_ADDR no es obtenido de headers http sino que su origen esta en el protocolo IP al realizarse la conexión con el servidor web.

Saludos,

On 22/07/2010 06:10 p.m., hahmael wrote:
> Hola Saludo a todos, el día de hoy realmente son dos consultas.
>
> La primera es como ustedes obtienen u obtendrían la IP de un visitante,
> alguna otra forma aparte de obtenerlo por el Array $_SERVER[] ?, este Array
> como bien sabemos almacena datos obtenidos de Header enviado por el cliente.
>
> Alguien con un método o algo complementario para obtener en lo posible la IP
> real del cliente?, gracias.
>
> Por ultimo encontré esta función en Internet:
>
> ###################################################################
>
> function getRealIpAddr()
> {
>      if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
>      {
>        $ip=$_SERVER['HTTP_CLIENT_IP'];
>      }
>      elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip
> is pass from proxy
>      {
>        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
>      }
>      else
>      {
>        $ip=$_SERVER['REMOTE_ADDR'];
>      }
>      return $ip;
> }
>
> ###################################################################
>
> Hay algo curioso en la función anterior y es dos claves para el array
> $_SERVER que haciendo un var_dump a este no aparecen o no existen, alguien
> me confirma si HTTP_X_FORWADED FOR y HTTP_CLIENT_IP son de versiones
> anteriores de PHP y en completo desuso y por eso no aparecen en esta version
> 5.., sino es así para que sirven o para que servían.
>
> Gracias a todos, hasta pronto.
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.