Last active
February 12, 2022 11:50
-
-
Save relative/31a4fbbb62ea12b6d6cfcc22887cc1dd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name omegle revealer | |
// @namespace https://omegle.com | |
// @version 0.1 | |
// @description cum | |
// @author relative | |
// @match https://www.omegle.com/* | |
// @grant none | |
// @updateURL https://gist.github.com/relative/31a4fbbb62ea12b6d6cfcc22887cc1dd/raw/omegle%2520revealer.user.js | |
// @downloadURL https://gist.github.com/relative/31a4fbbb62ea12b6d6cfcc22887cc1dd/raw/omegle%2520revealer.user.js | |
// ==/UserScript== | |
;(() => { | |
Object.defineProperty(MediaStreamTrack.prototype, 'label', { | |
get: () => { | |
return 'HD Pro Webcam C920 (046d:082d)' | |
}, | |
set: (val) => { | |
console.log('attempted to set', val) | |
}, | |
}) | |
const injectStyles = () => { | |
const style = document.createElement('style') | |
style.innerHTML = ` | |
.or-bg { | |
position: absolute; | |
top: 10px; | |
right: 10px; | |
background: rgba(10, 10, 10, 0.9); | |
color: white; | |
width: 300px; | |
height: 100px; | |
z-index: 999999999; | |
border: 1px solid #050505; | |
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAlSURBVChTYxAREfnPw8PzHxeNogCGkfnEmQDDyDph/IF3A89/ABQxTIGh/maWAAAAAElFTkSuQmCC') | |
repeat; | |
font-family: 'Verdana' !important; | |
font-size: 13px !important; | |
color: #cccccc; | |
} | |
.or-border-light { | |
content: ''; | |
width: 298px; | |
height: 98px; | |
border: 1px solid #3c3c3c; | |
} | |
.or-border-dark { | |
content: ''; | |
height: 92px; | |
border: 3px solid #282828; | |
} | |
.or-border-inside { | |
content: ''; | |
height: 90px; | |
border: 1px solid #3c3c3c; | |
} | |
.or-rainbow-container { | |
display: flex; | |
flex-direction: column; | |
width: 100%; | |
height: 3px; | |
} | |
.or-rainbow-1 { | |
height: 1px; | |
width: 100%; | |
background: linear-gradient(to right, #38b0da 0%, #cb46cd 50%, #cce335 100%); | |
} | |
.or-rainbow-2 { | |
height: 1px; | |
width: 100%; | |
background: linear-gradient(to right, #1d5e74 0%, #6c256d 50%, #6d791c 100%); | |
} | |
.or-rainbow-3 { | |
height: 1px; | |
width: 100%; | |
background: #090909; | |
} | |
.or-bg .items *, | |
.item, | |
.or-body { | |
font-family: 'Verdana' !important; | |
letter-spacing: normal !important; | |
font-size: 13px !important; | |
color: #cccccc; | |
font-weight: 500; | |
text-shadow: 1px 1px 0px #050505; | |
} | |
.or-body { | |
padding: 8px; | |
} | |
.or-items { | |
display: flex; | |
flex-direction: column; | |
} | |
.row { | |
display: flex; | |
flex-direction: row; | |
} | |
.row strong { | |
margin-right: 5px; | |
} | |
.item a { | |
color: #ffffff !important; | |
} | |
` | |
document.head.appendChild(style) | |
} | |
const el = document.createElement('div') | |
el.className = 'or-bg' | |
el.innerHTML = ` | |
<div class="or-items"> | |
<div class="or-border-light"> | |
<div class="or-border-dark"> | |
<div class="or-border-inside"> | |
<div class="or-container"> | |
<div class="or-rainbow-container"> | |
<div class="or-rainbow-1"></div> | |
<div class="or-rainbow-2"></div> | |
<div class="or-rainbow-3"></div> | |
</div> | |
<div id="or-inside" class="or-inside"> | |
<div id="or-body" class="or-body"> | |
<div class="or-items"> | |
<div class="row"> | |
<strong>ip</strong> | |
<span class="item" id="or-ip"> | |
n/a | |
</span> | |
</div> | |
<div class="row"> | |
<strong>location</strong> | |
<span class="item" id="or-loc"> | |
n/a | |
</span> | |
</div> | |
<div class="row"> | |
<strong>isp</strong> | |
<span class="item" id="or-as"> | |
n/a | |
</span> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
` | |
document.body.appendChild(el) | |
injectStyles() | |
function updateWithIp(ip) { | |
console.log( | |
`%cFOUND IP!!! %c${ip}`, | |
'font-size: 14px;', | |
'font-size: 14px;color:#7f00ab;' | |
) | |
document.getElementById( | |
'or-ip' | |
).innerHTML = `<a href="https://ipaddress.com/ipv4/${ip}" target="_blank">${ip}</a>` | |
fetch( | |
`https://atlascheat.com/omegle_lookup.php?host=${encodeURIComponent(ip)}` | |
) | |
.then((res) => res.json()) | |
.then((res) => { | |
document.getElementById( | |
'or-loc' | |
).innerHTML = `${res.city}, ${res.regionName} (${res.zip})` | |
document.getElementById('or-as').innerHTML = res.as | |
}) | |
.catch((err) => { | |
if (err.toString().includes('SyntaxError')) { | |
console.warn('failed to parse da data on the gang, fuck.') | |
} | |
document.getElementById('or-loc').innerHTML = 'couldnt get details' | |
document.getElementById('or-as').innerHTML = 'couldnt get details' | |
}) | |
} | |
;((gotEvents) => { | |
COMETBackend.prototype.gotEvents = function (events) { | |
if (Array.isArray(events)) { | |
events.forEach((event) => { | |
if (event[0] === 'icecandidate') { | |
// look for srflx ip | |
if (event[1] && event[1].candidate) { | |
let candidate = event[1].candidate | |
if (candidate.includes('typ srflx')) { | |
console.log('found candidate') | |
console.log(candidate) | |
let split = candidate.split(' ') | |
let ip = split[4] | |
console.log('UPDATE WITH IP') | |
updateWithIp(ip) | |
} | |
} | |
} | |
}) | |
} | |
return gotEvents.apply(this, [events]) | |
} | |
})(COMETBackend.prototype.gotEvents) | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment