Tali servizi web come whatismyip.com utilizzano javascript per determinare il tuo indirizzo IP locale. Di seguito è riportato il codice estratto dal sito che hai menzionato sopra:
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;
};
}
Il codice si collega al tuo pc (il PC è auto-referente), ma con l'interfaccia sei in grado di leggere i dettagli del socket e che include l'ip locale in cui il tuo computer è conosciuto nella tua rete locale. Questa è una pratica comune per ottenere il tuo indirizzo IP locale. È nuovo per me che può essere fatto con javascript.
Per ulteriori informazioni sull'API RTCPeerConnection
js: link