Total connections
= number_format($stats['total']) ?>
Last = RATE_WINDOW_SECONDS ?>s
= number_format($stats['recent']) ?>
Nodes
= $enabled_count ?> / = $node_count ?>
Last connection
= $stats['last'] ? h($stats['last']) : '—' ?>
Top source IPs
No data yet.
| IP | Connections | |
|---|---|---|
= h($row['src_ip']) ?> |
= number_format($row['cnt']) ?> |
Top targeted ports
No data yet.
| Port | Connections | |
|---|---|---|
= (int)$row['dst_port'] ?> |
= number_format($row['cnt']) ?> |
Recent connections = $filter_node ? '(filtered)' : '' ?>
No connections ingested yet. Make sure at least one node is configured and the fetch cron is running.
| Time (UTC) | Node | Source IP | Src port | Dst port | Banner len | Banner preview |
|---|---|---|---|---|---|---|
| = h($c['occurred_at']) ?> | = h($c['node_name']) ?> | = h($c['src_ip']) ?> |
= (int)$c['src_port'] ?> | = (int)$c['dst_port'] ?> |
= (int)$c['banner_len'] ?> |
= h(mb_substr(banner_text($c['banner_hex']), 0, 40)) ?>
|
Node status
No nodes configured. Add one.
| Name | API URL | Enabled | Last fetched |
|---|---|---|---|
| = h($n['name']) ?> | = h($n['api_url']) ?> |
= $n['enabled'] ? 'yes' : 'no' ?> | = $n['last_fetched_at'] ? h($n['last_fetched_at']) : 'never' ?> |
Auto-refreshes every 30 s · = date('Y-m-d H:i:s') ?> server time