您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows IP, country, state, city, district, local time, and ISP. Also removes omegle watermark from stranger's video.
- // ==UserScript==
- // @name Omegle IP to location and Watermark Remove
- // @description Shows IP, country, state, city, district, local time, and ISP. Also removes omegle watermark from stranger's video.
- // @version 1.0
- // @match https://omegle.com/*
- // @match https://www.omegle.com/*
- // @grant none
- // @run-at document-end
- // @namespace https://greasyfork.org/users/789058
- // @license MIT
- // ==/UserScript==
- const apiService = "ipinfo" // must be "ipinfo" or "ipapi"
- const apiKey = "" // gets better results with ipinfo, and does nothing for ip-api
- var tested = [];
- if (localStorage.getItem('tests') !== null) {
- tested = JSON.parse(localStorage.getItem('tests'));
- }
- var session = 0;
- var lastQuery = Date.now();
- window.oRTCPeerConnection = window.oRTCPeerConnection || window.RTCPeerConnection;
- window.RTCPeerConnection = function (...args) {
- const pc = new window.oRTCPeerConnection(...args);
- pc.oaddIceCandidate = pc.addIceCandidate;
- pc.addIceCandidate = function (iceCandidate, ...rest) {
- if (document.getElementById('videologo') instanceof Object) {
- document.getElementById('videologo').remove();
- }
- const fields = iceCandidate.candidate.split(' ');
- const ip = fields[4];
- if (fields[7] === 'srflx') {
- for (var i of tested) {
- if (i.query == ip) {
- makeTable(i);
- }
- }
- if (document.getElementsByTagName('table').length < 2 & lastQuery+1000 < Date.now()) {
- getLocation(ip);
- }
- }
- console.log(tested.length + ' - ' + ip);
- return pc.oaddIceCandidate(iceCandidate, ...rest);
- };
- return pc;
- };
- function getLocation(ip) {
- lastQuery = Date.now();
- var endpoint = `https://ipinfo.io/${ip}/json?token=${apiKey}`;
- if (apiService == "ipapi") {
- endpoint = `http://ip-api.com/json/${ip}?fields=18561529`;
- }
- var xhr = new XMLHttpRequest();
- xhr.onreadystatechange = function() {
- if (this.readyState == 4 && this.status == 200) {
- var response = JSON.parse(this.responseText);
- response.timezone = new Intl.DateTimeFormat([],{timeZone:response.timezone,year:'numeric',month:'numeric',day:'numeric',hour:'numeric',minute:'numeric',second:'numeric'}).format(new Date());
- response.total = tested.length;
- tested.push(response);
- localStorage.setItem('tests',JSON.stringify(tested));
- makeTable(response);
- }
- };
- xhr.open('GET', endpoint, true);
- xhr.send();
- }
- function makeTable(json) {
- session ++;
- json.session = session;
- var table = '<table border="2px">';
- for (const thing in json) {
- table += `<tr><td>${thing.charAt(0).toUpperCase()+thing.substring(1)}</td><td>${json[thing]}</td></tr>`;
- }
- table += '</table>';
- document.getElementsByClassName('statuslog')[0].innerHTML = table;
- }