Skip to content

Instantly share code, notes, and snippets.

@relative
Last active February 12, 2022 11:50
Show Gist options
  • Save relative/31a4fbbb62ea12b6d6cfcc22887cc1dd to your computer and use it in GitHub Desktop.
Save relative/31a4fbbb62ea12b6d6cfcc22887cc1dd to your computer and use it in GitHub Desktop.
// ==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