Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View DiegoFleitas's full-sized avatar
:shipit:
Bring me pictures of spiderman, Parker

Diego Fleitas DiegoFleitas

:shipit:
Bring me pictures of spiderman, Parker
  • Montevideo
  • 12:03 (UTC -03:00)
View GitHub Profile
@DiegoFleitas
DiegoFleitas / IP.js
Last active July 25, 2018 00:16
local IP bookmarklet
javascript:(function(){/** * Get the user IP throught the webkitRTCPeerConnection * @param onNewIP {Function} listener function to expose the IP locally * @return undefined */function getUserIP(onNewIP){var myPeerConnection=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection;var pc=new myPeerConnection({iceServers:[]}),noop=function(){},localIPs={},ipRegex=/([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,key;function iterateIP(ip){if(!localIPs[ip])onNewIP(ip);localIPs[ip]=true;}pc.createDataChannel("");pc.createOffer().then(function(sdp){sdp.sdp.split('\n').forEach(function(line){if(line.indexOf('candidate')<0)return;line.match(ipRegex).forEach(iterateIP);});pc.setLocalDescription(sdp,noop,noop);}).catch(function(reason){});pc.onicecandidate=function(ice){if(!ice||!ice.candidate||!ice.candidate.candidate||!ice.candidate.candidate.match(ipRegex))return;ice.candidate.candidate.match(ipRegex).forEach(iterateIP);};}getUserIP(function(ip){alert(ip);});})()