您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
禁用 WebRTC 防止泄露真实ip,默认禁用 WebRTC,脚本菜单选项用于启用/禁用当前域名的 WebRTC
当前为
- // ==UserScript==
- // @name 禁用 WebRTC
- // @version 1.1
- // @description 禁用 WebRTC 防止泄露真实ip,默认禁用 WebRTC,脚本菜单选项用于启用/禁用当前域名的 WebRTC
- // @author ChatGPT
- // @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 menuCommandLabel = enabledSites.includes(currentURL)
- ? '设置当前域名禁用WebRTC'
- : '设置当前域名启用WebRTC';
- GM_registerMenuCommand(menuCommandLabel, function() {
- if (enabledSites.includes(currentURL)) {
- GM_setValue('enabledSites', enabledSites.filter(site => site !== currentURL));
- } else {
- GM_setValue('enabledSites', [...enabledSites, currentURL]);
- }
- });
- // 默认禁用 WebRTC
- function disableWebRTC() {
- const RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection || window.msRTCPeerConnection;
- if (RTCPeerConnection) {
- // 替换 RTCPeerConnection 为一个抛出错误的函数
- window.RTCPeerConnection = function() {
- throw new Error("RTCPeerConnection is disabled");
- };
- window.RTCPeerConnection.prototype = {};
- }
- const getUserMedia = navigator.mediaDevices && navigator.mediaDevices.getUserMedia;
- if (getUserMedia) {
- // 替换 getUserMedia 为一个返回拒绝的 Promise
- navigator.mediaDevices.getUserMedia = function() {
- return Promise.reject(new Error("getUserMedia is disabled"));
- };
- }
- }
- // 根据当前域名的状态启用或禁用 WebRTC
- if (!enabledSites.includes(currentURL)) {
- disableWebRTC();
- }
- })();