一段代码检查你的浏览器IP泄露(WebRTC老话题了)

简介

老话题来水一手哈哈,原理很简单,就是浏览器的WebRTC功能可能导致你的ip泄露,很可能不走你的浏览器代理,快来检测一下吧~

代码

直接复制这段代码到你的F12控制台执行,如果有ip输出说明你的ip可能存在泄露的情况~

(function() {
    // WebRTC IPs
    const iceServers = [
        { urls: 'stun:stun.l.google.com:19302' },
        { urls: 'stun:stun1.l.google.com:19302' },
        { urls: 'stun:stun2.l.google.com:19302' },
        { urls: 'stun:stun3.l.google.com:19302' },
        { urls: 'stun:stun4.l.google.com:19302' },
    ];

    function getUserIPs(callback) {
        const myPeerConnection = new RTCPeerConnection({ iceServers });
        myPeerConnection.createDataChannel("");
        myPeerConnection.createOffer().then(offer => myPeerConnection.setLocalDescription(offer));

        myPeerConnection.onicecandidate = function(event) {
            if (event.candidate) {
                const parts = event.candidate.candidate.split(' ');
                const ip = parts[4];
                callback(ip);
            }
        };
    }

    getUserIPs((ip) => {
        const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
        const ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}(([0-9a-fA-F]{1,4}:){1,4}|((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;
        if (ipv4Regex.test(ip)) {
            console.log('WebRTC IPv4 Address:', ip);
        } else if (ipv6Regex.test(ip)) {
        console.log('WebRTC IPv6 Address:', ip);
        } else {
        console.log('WebRTC Local IP Address:', ip);
        }
        });
        })();

修复建议

如果存在ip泄露的情况推荐安装一个插件阻止泄露,例如Chrome自己的webrtc-network-limiter

62 Likes

给ink佬热热:smiling_face_with_three_hearts:

哈哈哈哈可以可以

1 Like

我的ip泄露了

还好我常年开AdsPower,直接禁用WebRTC

4 Likes

装上插件输入这段代码还是能跳出ip

26 Likes

想知道吾皇开的adspower的哪个级别的会员套餐hh

禁用级别开高一些

我只会在需要大量用的时候开个月套餐

1 Like

这样么,平时就free用么

平时两个。一个开家宽,访问一些特别苛刻的服务。一个开普通代理,就随便用用。

可以 之前我看它付钱就没怎么用,我也要利用起来hh

其实JSONP带来的泄露风险会更大的一些,一些蜜罐溯源的技术就采用JSONP跨域,获取攻击者的主机信息、浏览器信息、真实 IP及社交信息等

1 Like

有输出就是泄漏了是吧,那我赶紧补丁
image

image


好像开最高也没有用呀,大佬救命

1 Like

确实,这个到时候也可以水一期哈哈哈哈,不过只要用的比较新版本的浏览器感觉这个一般还好了

小白,只会开v2ray系的tun模式+strict route防止WebRTC和DNS泄露,至少从表面上看好像起作用了 :see_no_evil:

还有几个限制WebRTC的插件可以Google一下,不过最方便还是像吾皇一样直接用adspower这样的指纹浏览器hh

好的好的

我输出好几个