{% extends 'layout.twig' %} {% block title %}IPs — IRDB{% endblock %} {% macro flag(country) %} {%- set emoji = flag_emoji(country) -%} {%- if emoji -%} {{- emoji -}} {%- else -%} ?? {%- endif -%} {% endmacro %} {% macro status_pill(status) %} {%- set classes = { 'allowlisted': 'bg-emerald-100 text-emerald-900 dark:bg-emerald-900 dark:text-emerald-100', 'manually_blocked': 'bg-amber-100 text-amber-900 dark:bg-amber-900 dark:text-amber-100', 'scored': 'bg-red-100 text-red-900 dark:bg-red-900 dark:text-red-100', 'clean': 'bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-300', 'manual': 'bg-amber-100 text-amber-900 dark:bg-amber-900 dark:text-amber-100', } -%} {{ status }} {% endmacro %} {% block content %} {% import _self as h %} {% import 'partials/sort.twig' as sort %}

IPs

{% if list %} {{ list.total }} total {% endif %}
{% if error %}
{{ error }}
{% endif %}
{% if countries|default([])|length > 0 %} {% else %} {% endif %}
Reset
{% if list %}
{{ sort.th('IP', 'ip') }} {{ sort.th('Country', 'country') }} {{ sort.th('ASN', 'asn', 'number') }} {{ sort.th('Top category', 'top_category') }} {{ sort.th('Max score', 'max_score', 'number', 'right') }} {{ sort.th('Last report', 'last_report', 'date') }} {{ sort.th('Status', 'status') }} {% for item in list.items %} {% else %} {% endfor %}
{{ item.ip }} {{ h.flag(item.enrichment.country_code|default('')) }} {{ item.enrichment.asn|default('—') }} {{ item.topCategory|default('—') }} {{ item.maxScore|number_format(2) }} {% if item.lastReportAt %}{% else %}—{% endif %} {{ h.status_pill(item.status) }}
No results.
{% if list.total > list.pageSize %} {% set total_pages = list.totalPages() %} {% endif %} {% endif %}
{% endblock %}