{% from "partials/_macros.html" import card_header, pagination_bar, verdict_pill %}
| verdict | destination | process | interface | proto | ports | traffic | why |
|---|---|---|---|---|---|---|---|
| {% if f.verdict %}{{ verdict_pill(f.verdict, f.confidence) }} {% else %}—{% endif %} |
{# IP — the anchor #}
{{ f.dst_ip }}
{# resolved hostname / domain #}
{% if f.hostname %}
{{ f.hostname }}
{% endif %}
{# geolocation — city / region / country with flag #}
{% if f.geo %}
{% set place = [f.geo.city, f.geo.region, f.geo.country] | select | join(", ") %}
{% if place %}
{%- set flag = f.geo.cc | flag_emoji -%}
{%- if flag %}{{ flag }}{% endif -%}
{{ place }}
{% endif %}
{# network owner — ASN / org #}
{% if f.geo.org or f.geo.asn %}
{%- if f.geo.asn %}AS{{ f.geo.asn }}{% if f.geo.org %} · {% endif %}{% endif -%}
{{ f.geo.org or "" }}
{% endif %}
{% endif %}
|
{{ f.process }} | {% if f.iface and f.iface != '—' %} {{ f.iface }} {% else %} — {% endif %} |
{% for p in f.proto %}
{{ p }}
{% endfor %}
|
{% for p in f.ports[:12] %}
{{ p }}
{% endfor %}
{% if f.ports | length > 12 %}
+{{ f.ports | length - 12 }}
{% endif %}
|
{% set vol = f.bytes | human_bytes %}
{% if vol %}
{{ vol }}
{{ "{:,}".format(f.packets) }} pkts · {{ f.flows }} flow{{ '' if f.flows == 1 else 's' }}
{% else %}
{{ "{:,}".format(f.packets) }} pkts
{{ f.flows }} flow{{ '' if f.flows == 1 else 's' }}
{% endif %}
|
{{ f.reasoning }} |