ip user info

This commit is contained in:
Mateusz Gruszczyński
2026-04-15 08:47:45 +02:00
parent b3db12ba41
commit c0ac69fce7
15 changed files with 624 additions and 759 deletions

View File

@@ -3,7 +3,8 @@ let filteredResults = [];
let selectedFilters = {
countries: new Set(),
asns: new Set(),
owners: new Set()
owners: new Set(),
users: new Set()
};
// Theme Management
@@ -148,6 +149,19 @@ function displayFilters(stats) {
${shortOwner} (${count})
</span>`;
}).join('');
// Users (top 15)
const users = Object.entries(stats.users || {})
.sort((a, b) => b[1] - a[1])
.slice(0, 15);
document.getElementById('userFilters').innerHTML = users.map(([user, count]) => {
const shortUser = user.length > 30 ? user.substring(0, 30) + '...' : user;
return `<span class="filter-chip" data-type="users" data-value="${user}"
onclick="toggleFilter('users', '${escapeHtml(user)}')" title="${user}">
${shortUser} (${count})
</span>`;
}).join('');
}
// Toggle Filter
@@ -167,7 +181,7 @@ function toggleFilter(type, value) {
// Clear All Filters
function clearFilters() {
selectedFilters = { countries: new Set(), asns: new Set(), owners: new Set() };
selectedFilters = { countries: new Set(), asns: new Set(), owners: new Set(), users: new Set() };
document.querySelectorAll('.filter-chip').forEach(chip => chip.classList.remove('active'));
applyFilters();
}
@@ -176,7 +190,8 @@ function clearFilters() {
function applyFilters() {
const hasFilters = selectedFilters.countries.size > 0 ||
selectedFilters.asns.size > 0 ||
selectedFilters.owners.size > 0;
selectedFilters.owners.size > 0 ||
selectedFilters.users.size > 0;
if (!hasFilters) {
filteredResults = [...allResults];
@@ -184,7 +199,8 @@ function applyFilters() {
filteredResults = allResults.filter(item => {
return (selectedFilters.countries.size === 0 || selectedFilters.countries.has(item.country)) &&
(selectedFilters.asns.size === 0 || selectedFilters.asns.has(item.asn)) &&
(selectedFilters.owners.size === 0 || selectedFilters.owners.has(item.owner));
(selectedFilters.owners.size === 0 || selectedFilters.owners.has(item.owner)) &&
(selectedFilters.users.size === 0 || selectedFilters.users.has(item.user || 'Unknown'));
});
}
@@ -194,7 +210,7 @@ function applyFilters() {
// Update Filter Count
function updateFilterCount() {
const total = selectedFilters.countries.size + selectedFilters.asns.size + selectedFilters.owners.size;
const total = selectedFilters.countries.size + selectedFilters.asns.size + selectedFilters.owners.size + selectedFilters.users.size;
const countEl = document.getElementById('filterCount');
if (countEl) {
countEl.textContent = total > 0
@@ -214,6 +230,7 @@ function displayTable(results) {
<td class="ip-cell">${item.ip}</td>
<td><span class="badge-custom">${item.asn}</span></td>
<td><small>${escapeHtml(item.owner)}</small></td>
<td><small>${escapeHtml(item.user || 'Unknown')}</small></td>
<td>${item.country}</td>
<td><code>${item.network}</code></td>
</tr>