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

[email protected] (hahmael)
Newsgroups php.general.es
Message-ID <[email protected]>
Lucas gracias por tu respuesta, me queda la duda de la claves HTTP_CLIENT_IP
y HTTP_X_FORWARDED_FOR ya que se encuentran en muchos scripts pero en el
manual de PHP no aparecen. Tienes razon que el valor HTTP_REMOTE_ADDR no es
tomado del header sin embargo otros valores o la mayoria si son tomados, o
me equivoco?, un ejemplo seria: HTTP_ACCEPT_LANGUAGE, HTTP_USER_AGENT, etc.

Espero alguien pueda aportar algo mas.

Gracias.


2010/7/23 Lucas Crisman <[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.
>>
>>
>>
>>
>
>


-- 
Agradecido.

Hahmael Tâher.
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.