搜索
缓存时间07 现在时间07 缓存数据 人不应该是插在花瓶里供人观赏的静物,而是蔓延在草原上随风起舞的韵律。生命不是安排,而是追求,人生的意义也许永远没有答案,但也要尽情感受这种没有答案的人生。
查看: 411|回复: 2

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

[复制链接]
发表于 2024-8-8 18:13:49 | 显示全部楼层 |阅读模式

厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。使用帐户,不仅可以享受无广告的清爽界面!

您需要 登录 才可以下载或查看,没有账号?注册

×

简介

老话题来水一手哈哈,原理很简单,就是浏览器的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

爱生活,爱奶昔~
发表于 2024-8-8 20:55:47 | 显示全部楼层
直接装个chrome插件禁掉就好了
https://chromewebstore.google.co ... nbhleegehm?hl=zh-CN
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

发表于 2024-8-17 20:22:56 | 显示全部楼层
VM1399:12 Uncaught TypeError: RTCPeerConnection is not a constructor
    at getUserIPs (<anonymous>:12:34)
    at <anonymous>:25:5
    at <anonymous>:36:11
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

Powered by Nyarime. Licensed

GMT+8, 2024-12-15 07:08 , Processed in 0.027771 second(s), 10 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网

登录切换风格
快速回复 返回顶部 返回列表