elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Este código es eficiente para obtener la IP Pública?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Este código es eficiente para obtener la IP Pública?  (Leído 2,975 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: ¿Este código es eficiente para obtener la IP Pública?
« en: 16 Agosto 2020, 00:46 am »

Adjunto el código que encontré en otro foro..

Código
  1. if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
  2.    $ip = $_SERVER['HTTP_CLIENT_IP'];
  3. } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  4.    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  5. } else {
  6.    $ip = $_SERVER['REMOTE_ADDR'];
  7. }
  8.  

EDIT: me sale ::1
y en la otra pc me sale 192.168.1.102 pero no me sale la dirección pública que me da en la pagina de "cualesmiip"...

'Por qué el mio no se ve así?


« Última modificación: 16 Agosto 2020, 06:35 am por MiguelCanellas » En línea

Drakaris

Desconectado Desconectado

Mensajes: 286


Todo lo que puedas imaginar, lo puedes crear.


Ver Perfil
Re: [Pregunta]: ¿Este código es eficiente para obtener la IP Pública?
« Respuesta #1 en: 16 Agosto 2020, 13:33 pm »

Yo el código lo veo bien... Lo he probado en http://www.writephponline.com/ y me imprime mi ip publica (cliente).
 Cuando dices:
Citar
para obtener la IP Pública

A que te refieres? A la IP publica del cliente que hace la peticion o del servidor?

Citar
EDIT: me sale ::1
y en la otra pc me sale 192.168.1.102 pero no me sale la dirección pública que me da en la pagina de "cualesmiip"...

Te sale ip privadas porque estas comprobandolo en la misma red, compruebalo desde la WAN, por ejemplo en http://www.writephponline.com/ ejecuta el codigo. Te tendría que salir la ip publica de tu router.


En línea

Lo increible, no es lo que ves, sino como es
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Este código es eficiente para obtener la IP Pública?
« Respuesta #2 en: 16 Agosto 2020, 20:03 pm »

Hola,

Me refiero a la IP publica del usuario
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: ¿Este código es eficiente para obtener la IP Pública?
« Respuesta #3 en: 17 Agosto 2020, 00:28 am »

Hola,

Me refiero a la IP publica del usuario
El código que pones está correcto. Pero lo de siempre, te pueden mandar algo distinto a una ip para hacer HTMLi, xss, comand inyection, request smuggling, response spliting, path traversal, null byte filter bypass...
Asique ten el mismo cuidado que con cualquier dato obtenido de un usuario o fuentes externas:
curl -v -H "X-Forwarded-For: CODIGO_MALICIOSO_AQUÍ_EN_LUGAR_DE_UNA_IP_TE_HACKEARÁ_A_TI_Y_A_TODOS_TUS_USUARIOS" https://example.com
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: [Pregunta]: ¿Este código es eficiente para obtener la IP Pública?
« Respuesta #4 en: 19 Agosto 2020, 08:26 am »

Tanto HTTP_CLIENT_IP como HTTP_X_FORWARDED_FOR son cabeceras que son enviadas por el propio usuario y son modificables a su voluntad. La información que proporcionan solo se debe considerar como "fiable" cuando son proveídos por servicios fiables.

REMOTE_ADDR indica la dirección desde la que se ha solicitado la información. Si el usuario esta detrás de un proxy, REMOTE_ADDR indicará la dirección del servidor de proxy mientras que HTTP_CLIENT_IP o HTTP_X_FORWARDED_FOR puede que indiquen o no la dirección original. Remarcar la palabra puede...  Es a voluntad del servidor de proxy enviar dicha información y normalmente no la envía si se trata de un proxy que se respete.


Hay otro caso en el que se utilizan estas dos últimas cabeceras. Cuando estas detrás de un CDN como el de Cloudflare, si usas REMOTE_ADDR lo más seguro es que te lleguen las peticiones que hacen los servidores de Cloudflare. En tal caso, si es fiable usar HTTP_X_FORWARDED_FOR dado que Cloudflare añade esta cabecera con la IP del usuario.


Lo dicho, si vas a usarlo en seco sin balanceadores de carga ni cdns, te recomiendo usar solamente REMOTE_ADDR y si acaso añadir las otras dos cabeceras como información adicional.


Aquí en la Warzone de Elhacker.net hay/habia precisamente un reto que consiste spoofear el HTTP_X_FORWARDED_FOR.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines