Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: gregory90 en 3 Marzo 2018, 22:19 pm



Título: Conocer IPv4 e IPv6 publica y privada en PHP
Publicado por: gregory90 en 3 Marzo 2018, 22:19 pm
Hola,

Estoy haciendo un trabajo y a ver si alguien me echa una mano con esto.

Necesito conocer la IP publica, privada y hostname tanto en versión 4 como versión 6 sobre PHP.

Código
  1. $ip4pub = $_SERVER['REMOTE_ADDR'];
  2. $ip6pub = ???
  3. $hostnamepub = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  4. $ip4loc = ???
  5. $ip6loc = ???
  6. $hostnameloc = gethostname();

??? = Son las que me faltarían. Ya he buscado pero no veo nada que me valga para este caso.

Gracias!


Título: Re: Conocer IPv4 e IPv6 publica y privada en PHP
Publicado por: engel lex en 3 Marzo 2018, 22:28 pm
XD sin animos de hacerte sentir mal, lo que necesutas no son funciones, es conocimiento de tcp/ip XD


no puedes obtener esos datos

1- ipv4 - ipv6: solo puedes obtener uno de los 2, los paquetes van marcado con solo uno, y depende del cliente si tieneipv6 y su configuración cual use

2- ip privada: no hay razón para que la pc lo envie estose intercambia en el nat por la publica y no pasa de allí

3- hostname: tampoco hay razon para que envíe el hostname, puede que si esté configurado lo mande como en la cabecera, pero por razones de privacidad no se tiende a hacer

4- el gethostbyaddr tal vez no hace lo que quieres, esto puede ser muy lento y lo que hace es u reversedns, usualmente para los usuarios comunes, si responde algo, responderá es el nombre de esta ip según su proveedor, en tu caso #.red-#-#-#.dynamicip.rima-tde.net (donde los ## son tu ip invertida)


por js si podrías intentar obtenerlos
- hay un hack que te permite en algunos casos conocer la ip privada
- el ipv6 requeririas llamar desde js por ajax a una pagina por su ipv6 y que esta retorne el REMOTE_ADDR
- el hostname hay algunos hack en flash player para eso (si logras que el usuario active flash)

la primera y ultima pueden hacer saltar el antivirus


Título: Re: Conocer IPv4 e IPv6 publica y privada en PHP
Publicado por: gregory90 en 3 Marzo 2018, 23:42 pm
no puedes obtener esos datos

En alguna web vi que se obtenian.

Igualmente, quizás me expliqué mal.

La ipv4 pública me la da sin problemas.
El reversedns que comentas, me vale el que me da.
En cuanto al tema ipv6 público entiendo a lo que te refieres.

En cuanto al ipv6 privado, dependerá del cliente que ejecute el código si tiene en su interface habilitado el tráfico ipv6 o solo ipv4 (por defecto están los dos habilitados) para evitarse posibles ataques tipo syn flood de ipv6 sería mejor deshabilitar este tipo de tráfico de forma internal en un red local, ya que esta no hace NAT (por que en ipv6 no existe el concepto de NAT...) y la conexión sería extremo a extremo, pero esto no es el caso de este post.

Básicamente lo que quería saber es la IPv4 IPv6 interna de un red local, de la propia máquina que ejecuta el código así como el hostname, el nombre de máquina.

Comentas que esto último se puede hacer con js no?.


Título: Re: Conocer IPv4 e IPv6 publica y privada en PHP
Publicado por: engel lex en 3 Marzo 2018, 23:47 pm
la ipv6 interna a pesar que está activa por defectos en algunas maquinas, no tiende a estar configurada (el router normalmente no tiene configuración de ello)

si, puedes por js... lo mismo, ip4 o ip6 según la configuración principal

aquí el "hack" aplicado (entre comillas porque se supone que es un feature no un bug)
http://net.ipcalf.com/ (http://net.ipcalf.com/)
https://stackoverflow.com/questions/20194722/can-you-get-a-users-local-lan-ip-address-via-javascript (https://stackoverflow.com/questions/20194722/can-you-get-a-users-local-lan-ip-address-via-javascript)
https://ourcodeworld.com/articles/read/257/how-to-get-the-client-ip-address-with-javascript-only (https://ourcodeworld.com/articles/read/257/how-to-get-the-client-ip-address-with-javascript-only)

sobre el hostname se que existía la posibilidad con flash... pero hace tantos años de eso... XD


Título: Re: Conocer IPv4 e IPv6 publica y privada en PHP
Publicado por: gregory90 en 4 Marzo 2018, 12:18 pm
aquí el "hack" aplicado (entre comillas porque se supone que es un feature no un bug)
http://net.ipcalf.com/ (http://net.ipcalf.com/)
https://stackoverflow.com/questions/20194722/can-you-get-a-users-local-lan-ip-address-via-javascript (https://stackoverflow.com/questions/20194722/can-you-get-a-users-local-lan-ip-address-via-javascript)
https://ourcodeworld.com/articles/read/257/how-to-get-the-client-ip-address-with-javascript-only (https://ourcodeworld.com/articles/read/257/how-to-get-the-client-ip-address-with-javascript-only)

El hostname no era necesario sino opcional para lo que quería hacer, pero me sirvió perfectamente el js que me pasaste https://github.com/diafygi/webrtc-ips

Gracias ;)