¿Cómo puede un servidor de Internet encontrar mi dirección IP local? [duplicar]

3

Este sitio muestra mi IPv6 público, mi IPv4 público y mi dirección IP local . El primero y el segundo están claros, pero ¿cómo puede un servicio web ubicado en la WWW determinar mi dirección IP local, ya que se hace un enrutador para evitar tales prácticas y para aislar la red doméstica privada de la red pública global?

Mi pregunta es, ¿cómo puede un servicio web ubicado en Internet determinar mi dirección IP local que mi computadora usa para hablar con otras personas en mi red privada local?

    
pregunta Valor Naram 13.02.2018 - 12:24
fuente

2 respuestas

4

Resulta que la reciente extensión WebRTC de HTML5 permite a javascript consultar la dirección IP del cliente local. Una prueba de concepto está disponible aquí: enlace

Esta característica es aparentemente por diseño y no es un error. Sin embargo, dada su naturaleza controvertida, sería prudente confiar en este comportamiento. Sin embargo, creo que aborda de manera perfecta y apropiada su propósito previsto (revelarle al usuario lo que su navegador está perdiendo).

enlace

    
respondido por el again 13.02.2018 - 12:35
fuente
3

Dichos servicios web como whatismyip.com usan javascript para determinar su dirección IP local. A continuación se muestra el código extraído del sitio que mencionó anteriormente:

function checkLocal() {
            window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;   //compatibility for firefox and chrome
            var pc = new RTCPeerConnection({iceServers: []}), noop = function () {
            };
            pc.createDataChannel("");    //create a bogus data channel
            pc.createOffer(pc.setLocalDescription.bind(pc), noop);    // create offer and set local description
            pc.onicecandidate = function (ice) {  //listen for candidate events
                if (!ice || !ice.candidate || !ice.candidate.candidate) return;
                //reads out local ip
                var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1];
                jQuery(document).ready(function () {
                    jQuery("#local-ip").append("Your Local IP is: " + myIP);
                    jQuery("#local-ip").show("slow");
                });

                pc.onicecandidate = noop;
            };

}

El código se enlaza con su PC (la PC se refiere a sí misma), pero con la interfaz puede leer los detalles del zócalo y eso incluye la IP local bajo la cual se conoce su computadora en su red de área local. Esa es una práctica común para obtener su dirección IP local. Es nuevo para mí que se puede hacer con javascript.

Para obtener más información sobre la API RTCPeerConnection js: enlace

    
respondido por el Valor Naram 13.02.2018 - 12:37
fuente

Lea otras preguntas en las etiquetas