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.