| Current Path : /home/u4uwebca/public_html/4uweb.design/ |
| Current File : /home/u4uwebca/public_html/4uweb.design/views.php |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ZeroBot Analytics</title>
<link rel="icon" href="https://zerobot.info/dashboard/assets/images/favicon.ico">
<script>if(localStorage.getItem('zbTheme')==='dark')document.documentElement.setAttribute('data-theme','dark');</script>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" rel="stylesheet">
<script src="https://zerobot.info/assets/js/report.js" defer></script>
<style>
:root{--hv-bg:#f1f1f6;--hv-card:#fff;--hv-border:#e8e8ef;--hv-text:#1e1e2d;--hv-text-sec:#6c757d;--hv-table-head:#fafafa;--hv-table-head-border:#e8e8ef;--hv-table-row-hover:#fafafa;--hv-table-cell-border:#f0f0f5;--hv-shadow:0 1px 3px rgba(0,0,0,0.03);--hv-navbar-shadow:0 1px 4px rgba(0,0,0,0.03);--hv-code-bg:rgba(181,38,74,0.06);--hv-code-color:#b5264a}
[data-theme="dark"]{--hv-bg:#0d1117;--hv-card:#161b22;--hv-border:#30363d;--hv-text:#e6edf3;--hv-text-sec:#8b949e;--hv-table-head:#21262d;--hv-table-head-border:#30363d;--hv-table-row-hover:#1c2333;--hv-table-cell-border:#21262d;--hv-shadow:0 1px 3px rgba(0,0,0,0.2);--hv-navbar-shadow:0 1px 4px rgba(0,0,0,0.2);--hv-code-bg:rgba(181,38,74,0.15);--hv-code-color:#e8758e}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Poppins",sans-serif;background:var(--hv-bg);color:var(--hv-text);min-height:100vh}
.zb-navbar{background:var(--hv-card);border-bottom:1px solid var(--hv-border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--hv-navbar-shadow)}
.zb-navbar .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1em;color:var(--hv-text);text-decoration:none}
.zb-navbar .brand img{height:36px}
.zb-navbar .nav-actions{display:flex;align-items:center;gap:12px}
.zb-refresh-btn{background:rgba(181,38,74,0.08);color:#b5264a;border:1px solid rgba(181,38,74,0.15);padding:6px 14px;border-radius:8px;font-size:0.82rem;font-weight:600;cursor:pointer;transition:all 0.2s;font-family:"Poppins",sans-serif}
.zb-refresh-btn:hover{background:rgba(181,38,74,0.15)}
.zb-toggle{position:relative;display:flex;align-items:center;gap:8px;font-size:0.82rem;color:var(--hv-text-sec);cursor:pointer}
.zb-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.zb-switch input{opacity:0;width:0;height:0}
.zb-switch .slider{position:absolute;top:0;left:0;right:0;bottom:0;background:#ccc;border-radius:24px;cursor:pointer;transition:background 0.3s}
.zb-switch .slider::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform 0.3s;box-shadow:0 1px 3px rgba(0,0,0,0.15)}
.zb-switch input:checked+.slider{background:#b5264a}
.zb-switch input:checked+.slider::after{transform:translateX(20px)}
.zb-theme-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--hv-border);border-radius:8px;background:var(--hv-card);color:var(--hv-text-sec);cursor:pointer;transition:all .2s ease;font-size:1.05rem}
.zb-theme-btn:hover{color:#b5264a;border-color:#b5264a;transform:translateY(-1px)}
.zb-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 24px}
.stat-card{background:var(--hv-card);border:1px solid var(--hv-border);border-radius:12px;padding:18px 20px;text-align:center;box-shadow:var(--hv-shadow)}
.stat-card .label{font-size:0.78rem;color:var(--hv-text-sec);font-weight:500;margin-bottom:4px}
.stat-card .value{font-size:1.5em;font-weight:700}
.stat-card .value.success{color:#22c55e}
.stat-card .value.danger{color:#e74c3c}
.stat-card .value.warning{color:#f59e0b}
.stat-card .value.accent{color:#b5264a}
.zb-filters{display:flex;align-items:center;justify-content:space-between;padding:0 24px 12px}
.zb-filters select{padding:6px 12px;border:1px solid var(--hv-border);border-radius:8px;font-size:0.82rem;background:var(--hv-card);color:var(--hv-text);font-family:"Poppins",sans-serif;cursor:pointer}
.zb-reset-btn{background:rgba(231,76,60,0.08);color:#e74c3c;border:1px solid rgba(231,76,60,0.15);padding:6px 14px;border-radius:8px;font-size:0.82rem;font-weight:600;cursor:pointer;transition:all 0.2s;font-family:"Poppins",sans-serif;text-decoration:none}
.zb-reset-btn:hover{background:rgba(231,76,60,0.15);color:#e74c3c}
.zb-table-wrap{padding:0 24px 24px}
.zb-table{width:100%;background:var(--hv-card);border:1px solid var(--hv-border);border-radius:12px;overflow:hidden;box-shadow:var(--hv-shadow)}
.zb-table table{width:100%;border-collapse:collapse;font-size:0.85rem;color:var(--hv-text)}
.zb-table thead{background:var(--hv-table-head);border-bottom:2px solid var(--hv-table-head-border)}
.zb-table th{padding:12px 14px;font-weight:600;color:var(--hv-text-sec);text-align:left;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.3px}
.zb-table td{padding:10px 14px;border-bottom:1px solid var(--hv-table-cell-border);vertical-align:middle}
.zb-table tr:last-child td{border-bottom:none}
.zb-table tr:hover{background:var(--hv-table-row-hover)}
.zb-table code{background:var(--hv-code-bg);color:var(--hv-code-color);padding:2px 8px;border-radius:6px;font-size:0.82rem}
.visitor-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:0.75rem;font-weight:600}
.badge-success{background:rgba(34,197,94,0.1);color:#22c55e}
.badge-danger{background:rgba(231,76,60,0.1);color:#e74c3c}
.badge-warning{background:rgba(245,158,11,0.1);color:#f59e0b}
.zb-device,.zb-country{display:flex;align-items:center;gap:6px}
.zb-device img,.zb-country img{width:20px;height:15px;border-radius:2px}
.zb-action-group{display:flex;justify-content:center;gap:6px}
.zb-action-btn{border:none;outline:none;padding:5px 12px;border-radius:8px;font-size:0.72rem;font-weight:600;font-family:"Poppins",sans-serif;display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:all 0.2s ease;background:transparent}
.zb-action-btn i{font-size:11px}
.zb-action-btn.btn-report{color:#e74c3c;border:1px solid rgba(231,76,60,0.2)}
.zb-action-btn.btn-report:hover{background:rgba(231,76,60,0.08);border-color:rgba(231,76,60,0.4)}
.zb-action-btn.btn-whitelist{color:#22c55e;border:1px solid rgba(34,197,94,0.2)}
.zb-action-btn.btn-whitelist:hover{background:rgba(34,197,94,0.08);border-color:rgba(34,197,94,0.4)}
.zb-action-btn.btn-blacklist{color:#f5a623;border:1px solid rgba(245,166,35,0.2)}
.zb-action-btn.btn-blacklist:hover{background:rgba(245,166,35,0.08);border-color:rgba(245,166,35,0.4)}
.zb-empty{text-align:center;padding:60px 20px;color:var(--hv-text-sec)}
.zb-empty i{font-size:3rem;color:#d4d4da;margin-bottom:16px;display:block}
@media(max-width:768px){.zb-stats{grid-template-columns:repeat(2,1fr)}.zb-table{overflow-x:auto}.zb-navbar{flex-direction:column;gap:12px}.zb-navbar .nav-actions{flex-wrap:wrap;justify-content:center}}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
var rows = document.querySelectorAll("#dataTable tr");
var total = rows.length, bots = 0, humans = 0, denied = 0;
rows.forEach(function(row) {
var s = row.getAttribute("data-status");
if (s === "Allowed") humans++;
else if (s === "Denied") denied++;
else bots++; // "Blocked"
});
var e;
e = document.getElementById("statTotal"); if (e) e.textContent = total;
e = document.getElementById("statBots"); if (e) e.textContent = bots;
e = document.getElementById("statHumans"); if (e) e.textContent = humans;
e = document.getElementById("statDenied"); if (e) e.textContent = denied;
var sel = document.getElementById("countryFilter");
var countries = {};
rows.forEach(function(row) {
var c = row.getAttribute("data-country");
if (c && c !== "xx") countries[c] = (countries[c] || 0) + 1;
});
Object.keys(countries).sort().forEach(function(c) {
var opt = document.createElement("option");
opt.value = c; opt.textContent = c.toUpperCase() + " (" + countries[c] + ")";
sel.appendChild(opt);
});
var savedCountry = localStorage.getItem("zb_country_filter") || "";
if (savedCountry) { sel.value = savedCountry; rows.forEach(function(row) { row.style.display = (row.getAttribute("data-country") === savedCountry) ? "" : "none"; }); }
sel.addEventListener("change", function() {
var val = this.value;
localStorage.setItem("zb_country_filter", val);
rows.forEach(function(row) { row.style.display = (!val || row.getAttribute("data-country") === val) ? "" : "none"; });
});
var fh = document.getElementById("autoFilterHuman");
if (fh) {
if (localStorage.getItem("zb_filter_human") === "1") { fh.checked = true; rows.forEach(function(row) { if (row.getAttribute("data-status") !== "Allowed") row.style.display = "none"; }); }
fh.addEventListener("change", function() {
var onlyHuman = this.checked;
localStorage.setItem("zb_filter_human", onlyHuman ? "1" : "0");
rows.forEach(function(row) { row.style.display = (onlyHuman && row.getAttribute("data-status") !== "Allowed") ? "none" : ""; });
});
}
var refreshInterval;
var mr = document.getElementById("manualRefresh");
if (mr) mr.addEventListener("click", function() { location.reload(); });
var ar = document.getElementById("autoRefreshToggle");
if (ar) {
if (localStorage.getItem("zb_auto_refresh") === "1") { ar.checked = true; refreshInterval = setInterval(function() { location.reload(); }, 10000); }
ar.addEventListener("change", function() {
localStorage.setItem("zb_auto_refresh", this.checked ? "1" : "0");
if (this.checked) { refreshInterval = setInterval(function() { location.reload(); }, 10000); }
else { clearInterval(refreshInterval); }
});
}
});
</script>
</head>
<body>
<nav class="zb-navbar">
<a class="brand" href="#">
<img src="https://zerobot.info/dashboard/assets/images/favicon.ico" alt="ZeroBot">
ZeroBot Analytics
</a>
<div class="nav-actions">
<button id="themeToggle" class="zb-theme-btn" title="Toggle dark mode"><i class="fa-solid fa-moon"></i></button>
<button id="manualRefresh" class="zb-refresh-btn"><i class="fa-solid fa-rotate-right"></i> Refresh</button>
<div class="zb-toggle"><label class="zb-switch"><input type="checkbox" id="autoRefreshToggle"><span class="slider"></span></label> Auto Refresh</div>
<div class="zb-toggle"><label class="zb-switch"><input type="checkbox" id="autoFilterHuman"><span class="slider"></span></label> Filter Human</div>
</div>
</nav>
<script>
(function(){
var btn=document.getElementById("themeToggle"),icon=btn.querySelector("i");
var saved=localStorage.getItem("zbTheme");
if(saved==="dark"){icon.className="fa-solid fa-sun";}
btn.addEventListener("click",function(){
var isDark=document.documentElement.getAttribute("data-theme")==="dark";
if(isDark){document.documentElement.removeAttribute("data-theme");localStorage.setItem("zbTheme","light");icon.className="fa-solid fa-moon";}
else{document.documentElement.setAttribute("data-theme","dark");localStorage.setItem("zbTheme","dark");icon.className="fa-solid fa-sun";}
});
})();
</script>
<div class="zb-stats">
<div class="stat-card"><div class="label"><i class="fa-solid fa-layer-group"></i> Total</div><div class="value accent" id="statTotal">0</div></div>
<div class="stat-card"><div class="label"><i class="fa-solid fa-robot"></i> Bots</div><div class="value danger" id="statBots">0</div></div>
<div class="stat-card"><div class="label"><i class="fa-solid fa-user"></i> Humans</div><div class="value success" id="statHumans">0</div></div>
<div class="stat-card"><div class="label"><i class="fa-solid fa-earth-americas"></i> Country Denied</div><div class="value warning" id="statDenied">0</div></div>
</div>
<div class="zb-filters">
<select id="countryFilter"><option value="">All Countries</option></select>
<a href="AX.php?delete=views.php" id="resetTrafficBtn" class="zb-reset-btn" onclick="return confirm('Are you sure you want to reset all traffic data?');"><i class="fa-solid fa-trash"></i> Reset Traffic</a>
</div>
<div class="zb-table-wrap">
<div class="zb-table">
<table>
<thead>
<tr>
<th>IP</th><th>Time</th><th>Device</th><th>Browser</th><th>ISP</th><th>Hostname</th>
<th>Country</th><th>Decision</th><th>Status</th><th>Actions</th>
</tr>
</thead>
<tbody id="dataTable"><tr data-country='ng' data-status='Allowed'><td><code>41.184.1.238</code></td><td>24/07/2026 15:15:41</td><td><div class='zb-device'><img src='https://zerobot.info/dashboard/assets/images/os/windows.svg' alt='' onerror="this.style.display='none'">Windows</div></td><td><div class='zb-device'><img src='https://zerobot.info/dashboard/assets/images/browser/chrome.png' alt='' onerror="this.style.display='none'" style='width:18px;height:18px;border-radius:0;object-fit:contain;'>Chrome</div></td><td>ipNX Nigeria Limited</td><td>41.184.1.238</td><td><div class='zb-country'><img src='https://flagpedia.net/data/flags/icon/108x81/ng.webp' alt='' onerror="this.style.display='none'">Nigeria</div></td><td><span class='visitor-badge badge-success'>Human</span></td><td><span class='visitor-badge badge-success'><i class='fa-solid fa-circle-check'></i> Allowed</span></td><td><div class='zb-action-group'><button class='zb-action-btn btn-report' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='41.184.1.238' ip='41.184.1.238' useragent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36' isp='ipNX Nigeria Limited'><i class='fa-solid fa-flag'></i> Report</button><button class='zb-action-btn btn-whitelist' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='41.184.1.238' ip='41.184.1.238' useragent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36' isp='ipNX Nigeria Limited'><i class='fa-solid fa-user-check'></i> Whitelist</button><button class='zb-action-btn btn-blacklist' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='41.184.1.238' ip='41.184.1.238' useragent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36' isp='ipNX Nigeria Limited'><i class='fa-solid fa-user-xmark'></i> Blacklist</button></div></td></tr>
<tr data-country='de' data-status='Blocked'><td><code>162.19.152.138</code></td><td>24/07/2026 16:42:08</td><td><div class='zb-device'><img src='https://zerobot.info/dashboard/assets/images/os/unknown.svg' alt='' onerror="this.style.display='none'">Unknown</div></td><td><div class='zb-device'><img src='https://zerobot.info/dashboard/assets/images/browser/unknown.png' alt='' onerror="this.style.display='none'" style='width:18px;height:18px;border-radius:0;object-fit:contain;'>Unknown</div></td><td>OVH SAS</td><td>vps-1e6d7d66.vps.ovh.net</td><td><div class='zb-country'><img src='https://flagpedia.net/data/flags/icon/108x81/de.webp' alt='' onerror="this.style.display='none'">Germany</div></td><td><span class='visitor-badge badge-danger'>Bot</span></td><td><span class='visitor-badge badge-danger'><i class='fa-solid fa-shield-halved'></i> Blocked</span></td><td><div class='zb-action-group'><button class='zb-action-btn btn-report' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='vps-1e6d7d66.vps.ovh.net' ip='162.19.152.138' useragent='Mozilla/5.0 (compatible; ZeroBotLinkCheck/1.0)' isp='OVH SAS'><i class='fa-solid fa-flag'></i> Report</button><button class='zb-action-btn btn-whitelist' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='vps-1e6d7d66.vps.ovh.net' ip='162.19.152.138' useragent='Mozilla/5.0 (compatible; ZeroBotLinkCheck/1.0)' isp='OVH SAS'><i class='fa-solid fa-user-check'></i> Whitelist</button><button class='zb-action-btn btn-blacklist' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='vps-1e6d7d66.vps.ovh.net' ip='162.19.152.138' useragent='Mozilla/5.0 (compatible; ZeroBotLinkCheck/1.0)' isp='OVH SAS'><i class='fa-solid fa-user-xmark'></i> Blacklist</button></div></td></tr>
<tr data-country='id' data-status='Allowed'><td><code>140.213.170.206</code></td><td>24/07/2026 20:52:15</td><td><div class='zb-device'><img src='https://zerobot.info/dashboard/assets/images/os/android.svg' alt='' onerror="this.style.display='none'">Android</div></td><td><div class='zb-device'><img src='https://zerobot.info/dashboard/assets/images/browser/chrome.png' alt='' onerror="this.style.display='none'" style='width:18px;height:18px;border-radius:0;object-fit:contain;'>Chrome</div></td><td>PT XL Axiata</td><td>140.213.170.206</td><td><div class='zb-country'><img src='https://flagpedia.net/data/flags/icon/108x81/id.webp' alt='' onerror="this.style.display='none'">Indonesia</div></td><td><span class='visitor-badge badge-success'>Human</span></td><td><span class='visitor-badge badge-success'><i class='fa-solid fa-circle-check'></i> Allowed</span></td><td><div class='zb-action-group'><button class='zb-action-btn btn-report' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='140.213.170.206' ip='140.213.170.206' useragent='Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36' isp='PT XL Axiata'><i class='fa-solid fa-flag'></i> Report</button><button class='zb-action-btn btn-whitelist' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='140.213.170.206' ip='140.213.170.206' useragent='Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36' isp='PT XL Axiata'><i class='fa-solid fa-user-check'></i> Whitelist</button><button class='zb-action-btn btn-blacklist' username='56BtVDmC4e2I6EGVaZQzqrnjF1GP353N' hostname='140.213.170.206' ip='140.213.170.206' useragent='Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Mobile Safari/537.36' isp='PT XL Axiata'><i class='fa-solid fa-user-xmark'></i> Blacklist</button></div></td></tr>