Greasy Fork is available in English.

不要获取我的IP

阻止外部API请求捕获IP地址。

  1. // ==UserScript==
  2. // @namespace http://linkme.bio/jhonpergon/?userscript=api_block
  3. // @version 1.4
  4. // @author Jhon Pérgon
  5.  
  6. // @name Não Pegue Meu IP
  7. // @name:pt Não Pegue Meu IP
  8. // @name:es No Obtengas Mi IP
  9. // @name:en Don't Get My IP
  10. // @name:fr Ne Prends Pas Mon IP
  11. // @name:ru Не бери мой IP
  12. // @name:ja IPを取得しないでください
  13. // @name:ko 내 IP를 가져가지 마세요
  14. // @name:zh-TW 不要获取我的IP
  15. // @name:zh-CN 不要获取我的IP
  16. // @name:id Jangan Ambil IP Saya
  17. // @name:ug مېنىڭ ئۆزئىپىمنى قۇلۇپ قويما
  18. // @name:ar لا تأخذ عنوان IP الخاص بي
  19. // @name:he אל תקבל את כתובת ה-IP שלי
  20. // @name:hi मेरा IP मत लो
  21. // @name:th อย่าเก็บ IP ของฉัน
  22. // @name:bg Не взимайте моето IP
  23. // @name:ro Nu Luați IP-ul Meu
  24. // @name:fi Älä Hae Minun IP-osoitettani
  25. // @name:it Non Prendere Il Mio IP
  26. // @name:el Μην Πάρεις Την IP Μου
  27. // @name:eo Ne Prenu Mian IP
  28. // @name:hu Ne Vegyél El Az IP-címemet
  29. // @name:nb Ikke Hent Min IP
  30. // @name:sk Neberaj Moju IP
  31. // @name:sv Ta Inte Mitt IP
  32. // @name:sr Ne Uzimaj Moj IP
  33. // @name:pl Nie Bierz Mojego IP
  34. // @name:nl Pak Mijn IP Niet
  35. // @name:de Mein IP Nicht Abrufen
  36. // @name:da Tag Ikke Min IP
  37. // @name:cs Nezírej Moji IP
  38. // @name:uk Не Бери Мою IP
  39. // @name:tr IP'imi Alma
  40. // @name:vi Đừng Lấy IP Của Tôi
  41. // @name:fr-CA Ne Prends Pas Mon IP (Canada)
  42.  
  43. // @description Impede a captura do endereço IP feita por solicitação de API externa.
  44. // @description:pt Impede a captura do endereço IP feita por solicitação de API externa.
  45. // @description:es Bloquea la captura de IP realizada por una solicitud de API externa.
  46. // @description:en Blocks the capture of the IP address done by an external API request.
  47. // @description:fr Bloque la capture de l'adresse IP effectuée par une demande d'API externe.
  48. // @description:ru Блокирует захват IP-адреса, сделанный внешним запросом API.
  49. // @description:ja 外部APIリクエストによるIPアドレスのキャプチャをブロックします。
  50. // @description:ko 외부 API 요청으로 수행 된 IP 주소 캡처를 차단합니다.
  51. // @description:zh-TW 阻止外部API请求捕获IP地址。
  52. // @description:zh-CN 阻止外部API请求捕获IP地址。
  53. // @description:id Mencegah penangkapan alamat IP yang dilakukan oleh permintaan API eksternal.
  54. // @description:ug سىرىقى API سورىسى تەرىپىدىن ئىشلىتىلغان IP ؛ىمىزنى قولۇپ قويىدۇ.
  55. // @description:ar يحظر التقاط عنوان IP الذي يتم بواسطة طلب API خارجي.
  56. // @description:he מונע את לכידת כתובת ה-IP שנעשית על ידי בקשת API חיצונית.
  57. // @description:hi एक्सटर्नल API अनुरोध द्वारा किए गए IP पता को ब्लॉक करता है।
  58. // @description:th บล็อกการจับ IP address ที่ทำโดยคำขอ API จากภายนอก
  59. // @description:bg Блокира заснемането на IP адрес, извършено чрез външна заявка към API.
  60. // @description:ro Blochează capturarea adresei IP efectuată prin cererea unei API externe.
  61. // @description:fi Estää IP-osoitteen kaappauksen, joka on tehty ulkoisen API-pyynnön kautta.
  62. // @description:it Blocca la cattura dell'indirizzo IP effettuata da una richiesta di API esterna.
  63. // @description:el Φράζει την καταγραφή της διεύθυνσης IP που πραγματοποιείται από εξωτερικό αίτημα API.
  64. // @description:eo Blokas la kaptadon de la IP-adreso farita per ekstera API peto.
  65. // @description:hu Blokkolja az IP-cím elkapását, amit külső API-kérés végzett.
  66. // @description:nb Blokkerer fangsten av IP-adressen utført av en ekstern API-forespørsel.
  67. // @description:sk Blokuje zachytávanie IP adresy vykonané externou požiadavkou API.
  68. // @description:sv Blockerar fångsten av IP-adressen som utförs av en extern API-begäran.
  69. // @description:sr Blokira hvatanje IP adrese izvršeno preko spoljnog API zahteva.
  70. // @description:pl Blokuje przechwytywanie adresu IP dokonywane przez zewnętrzne żądanie API.
  71. // @description:nl Blokkeert het vastleggen van het IP-adres dat wordt gedaan door een externe API-aanvraag.
  72. // @description:de Blockiert das Erfassen der IP-Adresse durch eine externe API-Anfrage.
  73. // @description:da Blokerer opfange IP-adressen udført af en ekstern API-forespørgsel.
  74. // @description:cs Blokuje zachycení IP adresy provedené externí žádostí o API.
  75. // @description:uk Блокує захоплення IP-адреси, здійснене зовнішньою запитом до API.
  76. // @description:tr Harici bir API isteği tarafından yapılan IP adresi yakalamayı engeller.
  77. // @description:vi Chặn việc thu thập địa chỉ IP thực hiện bởi yêu cầu API bên ngoài.
  78. // @description:fr-CA Bloque la capture de l'adresse IP effectuée par une demande d'API externe.
  79.  
  80. // @match *://*/*
  81. // @exclude *://www.google.*
  82. // @exclude *://greasyfork.org/*
  83. // @exclude *://translate.google.*
  84. // @exclude *://www.google.it/*
  85. // @exclude https://www.youtube.com/*
  86. // @exclude https://m.youtube.com/*
  87. // @exclude https://music.youtube.com/*
  88. // @exclude https://youtu.be/*
  89. // @exclude https://accounts.youtube.com/*
  90. // @exclude https://www.youtube-nocookie.com/*
  91. // @exclude https://gmail.com/*
  92. // @exclude https://mail.google.com/*
  93. // @exclude https://github.com/*
  94. // @exclude https://www.facebook.com/*
  95. // @exclude https://facebook.com/*
  96. // @exclude https://m.facebook.com/*
  97. // @exclude https://wikipedia.org/*
  98. // @exclude https://web.whatsapp.com/*
  99. // @exclude https://instagram.com/*
  100. // @exclude https://x.com/*
  101. // @exclude https://twitter.com/*
  102. // @exclude *://www.bilibili.com/*
  103. // @exclude *://*.bilibili.com/*
  104. // @exclude *://s1.hdslb.com/*
  105.  
  106.  
  107. // @grant none
  108. // @icon data:image/png;base64,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
  109.  
  110. // @license MIT
  111. // @run-at document-start
  112.  
  113. // @compatible chrome
  114. // @compatible firefox
  115. // @compatible opera
  116. // @compatible edge
  117. // @compatible safari
  118. // @compatible berrybrowser
  119.  
  120. // ==/UserScript==
  121.  
  122. (function() {
  123. 'use strict';
  124.  
  125. let stopGo = false;
  126.  
  127. function stopAll(){
  128. // Sobrescreve a função addEventListener para prevenir a adição de eventos
  129. const originalAddEventListener = EventTarget.prototype.addEventListener;
  130. EventTarget.prototype.addEventListener = function(type, listener, options) {
  131. console.log(`Tentativa de adição de evento bloqueada: ${type}`);
  132. // Não faz nada, impedindo a adição de eventos
  133. };
  134.  
  135. // Remove o listener padrão do contexto de usuário para eventos adicionados dinamicamente
  136. window.removeEventListener = function(type, listener, options) {
  137. // Não faz nada
  138. };
  139.  
  140. // Remove todos os listeners existentes
  141. const removeAllListeners = () => {
  142. const elements = document.querySelectorAll('*');
  143. elements.forEach(element => {
  144. const events = getEventListeners(element);
  145. for (const eventType in events) {
  146. events[eventType].forEach(event => {
  147. element.removeEventListener(event.type, event.listener);
  148. });
  149. }
  150. });
  151. };
  152.  
  153. // Remove todos os listeners existentes antes de a página ser totalmente carregada
  154. window.addEventListener('beforeunload', removeAllListeners);
  155. window.addEventListener('error', removeAllListeners);
  156. window.addEventListener('load', removeAllListeners);
  157.  
  158.  
  159.  
  160. // Desativa o JavaScript na página
  161. function letsGo(){
  162.  
  163. const gElements = document.querySelectorAll('svg');
  164. if (gElements) {
  165. gElements.forEach((svgElement) => {
  166. svgElement.style.width = '10px';
  167. });
  168. }
  169. const imggElements = document.querySelectorAll('img');
  170. if (imggElements) {
  171. imggElements.forEach((svgElement) => {
  172. svgElement.style.display = 'none';
  173. });
  174. }
  175.  
  176. window.eval = function() { };
  177.  
  178. // Desativa a criação de novos elementos de script
  179. document.createElement = function(tagName) {
  180. if (tagName.toLowerCase() === 'script') {
  181. return document.createTextNode('');
  182. }
  183. return false;
  184. };
  185.  
  186. // Remove todos os scripts existentes na página
  187. var scripts = document.querySelectorAll('script');
  188. scripts.forEach(function(script) {
  189. script.parentNode.removeChild(script);
  190. });
  191.  
  192. var allElements = document.querySelectorAll('*');
  193. allElements.forEach(function(element) {
  194. element.DOMContentLoaded = "";
  195. element.load = "";
  196. element.click = "";
  197. element.keydown = "";
  198. element.mousedown = "";
  199. element.down = "";
  200. element.attached = "";
  201. element.onclick = "";
  202. element.auxclick = "";
  203. element.dblclick = "";
  204. element.copy = "";
  205. element.change = "";
  206. element.keypress = "";
  207. element.mouseover = "";
  208. element.beforeunload = "";
  209. element.error = "";
  210. if(element.href){
  211. element.innerHTML = "Don't Get My IP (Your UserScript)";
  212. element.href = 'https://greasyfork.org/pt-BR/scripts/472375-n%C3%A3o-pegue-meu-ip';
  213. }
  214. if(element.src){
  215. element.src = '';
  216. }
  217. if(element.tagName == 'BUTTON'){
  218. element.remove();
  219. }
  220. //console.log(element.tagName)
  221. if(element.tagName == 'P' && element.id !== 'hahahax' || element.tagName == 'SPAN' || element.tagName == 'STRONG' || element.tagName == 'SMALL' || element.tagName == 'TD' || element.tagName == 'TH' || element.tagName == 'B' || element.tagName == 'H1' || element.tagName == 'H2' || element.tagName == 'H3' || element.tagName == 'H4'){
  222. element.innerText = " Suspicious activity verified. The site's javascript has been disabled to prevent future actions.";
  223. }
  224.  
  225. });
  226.  
  227. allElements.forEach(function(element) {
  228. element.removeAttribute('DOMContentLoaded');
  229. element.removeAttribute('load');
  230. element.removeAttribute('onmousedown');
  231. element.removeAttribute('onmouseup');
  232. element.removeAttribute('onclick');
  233. element.removeAttribute('click');
  234. element.removeAttribute('attached');
  235. element.removeAttribute('keypress');
  236. element.removeAttribute('mouseover');
  237. element.removeAttribute('mousedown');
  238. element.removeAttribute('keydown');
  239. element.removeAttribute('beforeunload');
  240. element.removeAttribute('popstate');
  241. element.removeAttribute('error');
  242. });
  243. }
  244.  
  245. window.setTimeout(letsGo, 100);
  246.  
  247.  
  248. // Cria a barra de pesquisa
  249. const addalertBlock = document.createElement('div');
  250. addalertBlock.innerHTML = `<p id='hahahax' style='text-align: center;color: rgb(255, 255, 255);'>Userscript IPBLOCK: SITE BLOCKED.</p>`;
  251. addalertBlock.style.position = 'fixed';
  252. addalertBlock.style.width = '100%';
  253. addalertBlock.style.height = 'auto';
  254. addalertBlock.title = 'Open userscript page';
  255. addalertBlock.style.borderBottom = 'solid 1px rgb(129, 133, 142)';
  256. addalertBlock.style.paddingTop = '10px';
  257. addalertBlock.style.top = '0';
  258. addalertBlock.style.left = '50%';
  259. addalertBlock.style.right = '50%';
  260. addalertBlock.style.transform = 'translate(-50%, 0px)';
  261. addalertBlock.style.zIndex = '99999';
  262. addalertBlock.style.display = 'list-item';
  263. addalertBlock.style.alignItems = 'center';
  264. addalertBlock.style.textAlign = 'center';
  265. addalertBlock.style.backgroundColor = 'rgb(85, 0, 0)';
  266. addalertBlock.style.color = '#fff';
  267. addalertBlock.style.cursor = 'pointer';
  268.  
  269. document.addEventListener("keydown", function(event) {
  270. window.open('https://greasyfork.org/pt-BR/scripts/472375-n%C3%A3o-pegue-meu-ip', '_blank');
  271. });
  272.  
  273. document.body.style.backgroundColor = 'rgb(4, 2, 2)';
  274. document.body.style.color = '#fff';
  275. document.body.style.marginTop = '40px';
  276. document.body.appendChild(addalertBlock);
  277.  
  278. }
  279.  
  280.  
  281. var palavrasSalvas = `
  282. geoip,
  283. ip address:,
  284. address ip:,
  285. your ip:,
  286. ip2Location,
  287. ipaddress,
  288. myip,
  289. whatismyip,
  290. what is my ip?,
  291. endereço ip:,
  292. meu ip:,
  293. meuip.com`;
  294.  
  295. function stringParaArray(xpalavrasChave) {
  296. const arrayDePalavras = xpalavrasChave.split(',');
  297. const palavrasLimparEspacos = arrayDePalavras
  298. .map(palavra => palavra.trim())
  299. .filter(palavra => palavra !== '');
  300. return palavrasLimparEspacos;
  301. }
  302.  
  303. const palavrasChaveString = palavrasSalvas;
  304. const palavrasChave = stringParaArray(palavrasChaveString);
  305.  
  306. // Função para verificar se uma palavra-chave está presente em um elemento
  307. function verificaPalavrasChave(elemento) {
  308. var texto = elemento.textContent.toLowerCase();
  309. for (var i = 0; i < palavrasChave.length; i++) {
  310. var palavra = palavrasChave[i].toLowerCase();
  311. if (texto.includes(palavra)) {
  312. return true;
  313. }
  314. }
  315. return false;
  316. }
  317.  
  318.  
  319. // Função para remover tags com base nas palavras-chave
  320. function removeTagsComPalavrasChave() {
  321. var checarSubtags = Array.from(document.querySelectorAll('*'));
  322. checarSubtags.forEach(function (checarSubtag) {
  323. if (verificaPalavrasChave(checarSubtag)) {
  324. stopGo = true;
  325. }
  326. });
  327. }
  328.  
  329.  
  330. const ativeChekall = setInterval(() => {
  331. luazul();
  332. }, 100);
  333.  
  334. function luazul(){
  335. if(document.body){
  336. removeTagsComPalavrasChave();
  337. //setInterval(removeTagsComPalavrasChave, 1200);
  338. clearInterval(ativeChekall);
  339. }
  340. }
  341.  
  342. console.log('IPBLOCK ====>> Listening for requests...');
  343. // Lista de URLs de API conhecidas para capturar o IP
  344. const blockedApiUrls = [
  345. 'https://www.gstatic.com/charts/geochart',
  346. 'https://api.ipify.org',
  347. 'https://api.ipify.org?format=json',
  348. 'https://ipinfo.io',
  349. 'https://api.ipapi.com',
  350. 'https://www.iplocation.net',
  351. 'https://api.iplocation.net',
  352. 'https://website-cdn.ipinfo.io',
  353. 'https://p.typekit.net',
  354. 'https://use.typekit.net',
  355. 'https://pagead2.googlesyndication.com',
  356. 'https://data-jsext.com',
  357. 'https:main.exoclick.com',
  358. 'https:main.exdynsrv.com',
  359. 'https:main.exosrv.com',
  360. 'https://geolocation.onetrust.com',
  361. 'https://cdn.cookielaw.org',
  362. 'http://axeocy.com',
  363. 'https://chikzzz.com',
  364. 'https://themeetpartners.life',
  365. 'https://api.ip-api.com',
  366. 'https://ipapi.co',
  367. 'https://geo.ipify.org',
  368. 'https://extreme-ip-lookup.com',
  369. 'https://freeipapi.com',
  370. 'https://application/vnd.maxmind.com',
  371. 'https://freegeoip.io',
  372. 'ipbase.com',
  373. 'https://api.ip2location.com',
  374. 'https://ipstack.com',
  375. 'https://ipstack1.p.rapidapi.com',
  376. 'https://app.fusebox.fm',
  377. 'https://api.usercentrics.eu',
  378. 'https://maps.googleapis.com',
  379. 'https://www.expressvpn.com',
  380. 'https://graphql.usercentrics.eu',
  381. 'https://ipaddress',
  382. 'https://tls.browserleaks.com',
  383. 'https://rf.revolvermaps.com',
  384. '/website/_next/static',
  385. 'nordvpn.com/',
  386. 'expressvpn.com/',
  387. 'whoisxmlapi.com',
  388. 'maxmind.com',
  389. 'whatismyip.com',
  390. 'ip-api',
  391. 'myip.',
  392. '/cookie',
  393. '/location',
  394. '/ip',
  395. '/ips',
  396. '/api/hostname',
  397. '/api/whois',
  398. 'https://[',
  399. 'geoip',
  400. 'geoip2',
  401. 'ipaddress'
  402. // Adicione mais URLs de API que deseja bloquear, se necessário
  403. ];
  404.  
  405. let listBlock1 = "list of blocked ==> ";
  406. let listBlock2 = "list of blocked --> ";
  407.  
  408. var verifyc1 = false;
  409.  
  410. let contagemBlck = 1;
  411.  
  412. // Intercepta as solicitações AJAX feitas pelo website
  413. const open = XMLHttpRequest.prototype.open;
  414. XMLHttpRequest.prototype.open = function(method, url) {
  415. // Verifica se a URL da solicitação corresponde a uma URL de API bloqueada
  416. console.log('====>>', url);
  417. if (blockedApiUrls.some(apiUrl => url.startsWith(apiUrl))) {
  418. verifyc1 = true;
  419. listBlock1 += '\n\n'+contagemBlck+': '+url;
  420. contagemBlck++;
  421. console.log(`Solicitação de API bloqueada: ${url}`);
  422. return; // Interrompe a execução da solicitação
  423. }
  424. for (var i = 0; i < blockedApiUrls.length; i++) {
  425. var palavra = blockedApiUrls[i];
  426. if (url.includes(palavra)) {
  427. console.log(`~ Block: ${palavra}`);
  428. listBlock1 += palavra+" ~ ";
  429. verifyc1 = true;
  430.  
  431. // Intercepta as requisições AJAX
  432. var send = XMLHttpRequest.prototype.send;
  433. XMLHttpRequest.prototype.send = function() {
  434. console.log('Tentativa de enviar requisição AJAX bloqueada.');
  435. // bloqueia a requisição e para de carregar a página
  436. };
  437.  
  438. // Intercepta o envio de formulários
  439. var submit = HTMLFormElement.prototype.submit;
  440. HTMLFormElement.prototype.submit = function() {
  441. console.log('Tentativa de enviar formulário bloqueada.');
  442. // bloqueia o envio de formuário e para de carregar a página
  443. };
  444.  
  445. // Intercepta o clique em links
  446. document.addEventListener('click', function(event) {
  447. if (event.target.tagName === 'a') {
  448. console.log('Tentativa de navegar para outra página bloqueada.');
  449. event.preventDefault(); // Bloqueia o comportamento padrão do link
  450. }
  451. });
  452. return;
  453. }
  454. }
  455. // Continua com a execução normal da solicitação
  456. open.apply(this, arguments);
  457. };
  458.  
  459.  
  460.  
  461. let bloquearFetch = true;
  462. let verifyc2 = false;
  463.  
  464. function interceptarFetch(url, options) {
  465. console.log('---->>', url);
  466. for (var i = 0; i < blockedApiUrls.length; i++) {
  467. var palavra = blockedApiUrls[i];
  468. if (url.includes(palavra)) {
  469. console.log(`~ Block: ${palavra}`);
  470. listBlock2 += palavra+" ~ ";
  471. verifyc2 = true;
  472. return Promise.resolve({ status: 200, body: 'A solicitação foi bloqueada.' });
  473. }
  474. }
  475. if (bloquearFetch && correspondeAUrlBloqueada(url)) {
  476. console.log('Solicitação fetch bloqueada:', url);
  477. verifyc2 = true;
  478. listBlock2 += '\n\n'+contagemBlck+': '+url+" ~ ";
  479. contagemBlck++;
  480. return Promise.resolve({ status: 200, body: 'A solicitação foi bloqueada.' });
  481. } else {
  482. return window.originalFetch.call(this, url, options);
  483. }
  484. }
  485.  
  486. function correspondeAUrlBloqueada(url) {
  487. for (const urlBloqueada of blockedApiUrls) {
  488. if (url.startsWith(urlBloqueada)) {
  489. return true;
  490. }
  491. for (var i = 0; i < blockedApiUrls.length; i++) {
  492. var palavra = blockedApiUrls[i];
  493. if (url.includes(palavra)) {
  494. console.log(`~ Block: ${palavra}`);
  495. return true;
  496. }
  497. }
  498. }
  499. return false;
  500. }
  501.  
  502. // Substituir a função fetch globalmente
  503. window.originalFetch = window.fetch;
  504. window.fetch = interceptarFetch;
  505.  
  506. // Aguarde o evento de carregamento total da página
  507. window.addEventListener('load', function() {
  508. // Após o carregamento total da página, permitir todas as solicitações fetch
  509. bloquearFetch = false;
  510. });
  511.  
  512.  
  513.  
  514. function notificaAlert() {
  515. setTimeout(function(){
  516. if(verifyc1 == true){
  517. window.stop();
  518. console.log("~~ IPBLOCK AJAX ~~\n\n"+listBlock1);
  519. listBlock1 = "list of blocked ==> ";
  520. verifyc1 = false;
  521. stopAll();
  522. }
  523. else if(verifyc2 == true){
  524. window.stop();
  525. console.log("~~ IPBLOCK Fetch ~~\n\n"+listBlock2);
  526. listBlock2 = "list of blocked --> ";
  527. verifyc2 = false;
  528. stopAll();
  529. }else if(stopGo == true){
  530. window.stop();
  531. console.log("~~ IPBLOCK: Stop All.");
  532. stopAll();
  533. }else{
  534. console.log('IPBLOCK ====>> No API requests for IP identified.');
  535. }
  536. },1000);
  537. }
  538.  
  539. var xurl = window.location.href;
  540. // Verifica o URL para determinar o que fazer no site
  541. if (xurl.includes(`https://[`) || xurl.includes(`vercel`)) {
  542. stopGo = true;
  543. Object.defineProperty(Element.prototype, 'innerText', {
  544. set: function(value) {},
  545. });
  546. Object.defineProperty(Element.prototype, 'innerHTML', {
  547. set: function(value) {},
  548. });
  549. };
  550.  
  551. window.addEventListener('load', notificaAlert);
  552.  
  553. })();