搜索
缓存时间00 现在时间00 缓存数据 喜欢你每天的一句晚安,那比任何甜言蜜语听起来都幸福。
查看: 198|回复: 2

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

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

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

# 代码

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

```javascript
(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](https://chromewebstore.google.com/detail/webrtc-network-limiter/npeicpdbkakmehahjeeohfdhnlpdklia)[/md]
爱生活,爱奶昔~
发表于 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
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

Powered by Nyarime.

GMT+8, 2024-9-20 00:22 , Processed in 0.025348 second(s), 9 queries , Gzip On, Redis On
发帖际遇·手机版·小黑屋·RSS·奶昔网 |网站地图

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