禁用 WebRTC

禁用 WebRTC 防止泄露真实ip,默认禁用 WebRTC,脚本菜单选项用于启用/禁用当前域名的 WebRTC

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         禁用 WebRTC
// @version      1.3
// @description  禁用 WebRTC 防止泄露真实ip,默认禁用 WebRTC,脚本菜单选项用于启用/禁用当前域名的 WebRTC
// @author       DeepSeek
// @match        *://*/*
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// @run-at       document-start
// @namespace https://greasyfork.org/users/452911
// ==/UserScript==

(function() {
    'use strict';

    const enabledSites = GM_getValue('enabledSites', []);
    const currentURL = window.location.hostname;

    // 简化的禁用函数
    const disableWebRTC = () => {
        ['RTCPeerConnection', 'webkitRTCPeerConnection', 'mozRTCPeerConnection']
            .forEach(intf => window[intf] = null);
    };

    // 保留菜单逻辑
    GM_registerMenuCommand(
        enabledSites.includes(currentURL) 
            ? '设置当前域名禁用WebRTC' 
            : '设置当前域名启用WebRTC',
        () => {
            const newList = enabledSites.includes(currentURL)
                ? enabledSites.filter(site => site !== currentURL)
                : [...enabledSites, currentURL];
            GM_setValue('enabledSites', newList);
            location.reload();
        }
    );

    // 执行判断
    if (!enabledSites.includes(currentURL)) {
        disableWebRTC();
    }
})();