The ReportedIP blacklist is a community-driven list of malicious IP addresses, generated automatically
from real-world attack reports and available via API and GitHub. Use it to block known malicious IPs
in your firewall, web server, or application — it refreshes daily without manual review.
Wie die schwarze Liste erstellt wird
Jede IP-Adresse auf der Blacklist stammt aus Meldungen der Community, die in unserer Reputations-Engine erfasst wurden. Eine IP-Adresse wird
nur dann aufgenommen, wenn:
Sein Konfidenzwert beträgt ≥ 75 % (berechnet anhand der Häufigkeit der Meldungen,
der Vielfalt der Quellen, des Schweregrads und der Aktualität)
Its most recent report is at least 48 hours old (false-positive cool-down — entries only enter the export once the score has had time to recalibrate)
Es steht nicht auf der Whitelist (Suchmaschinen, CDN-Anbieter und als sicher eingestufte
Infrastrukturen sind ausgenommen)
Die Blacklist wird automatisch aktualisiert – es findet keine manuelle redaktionelle Überprüfung statt. Der gesamte Prozess
ist offen und transparent: Sie können jeden Eintrag über
GET /reportedip/v2/check?ip=<ip>&verbose=true
um die genaue Aufschlüsselung der Punkte zu sehen.
GitHub-Repository
The full blacklist is published as a public GitHub repository, pushed daily from the live API data.
The exported data itself is delayed by 48 hours (the false-positive cool-down described above).
You can clone it, use it in CI/CD pipelines, or integrate it into your infrastructure.
reportedip-blacklist/
├── blacklist-all.txt # All IPs, one per line
├── blacklist-all.json # All IPs with metadata
├── blacklist-all.csv # All IPs, CSV format
├── metadata.json # Export metadata (version, counts, timestamps)
├── lists/ # Thematic sub-lists
│ ├── spam.txt
│ ├── brute-force.txt
│ ├── cms-login.txt
│ ├── web-attacks.txt
│ ├── malware.txt
│ ├── ddos.txt
│ ├── fraud.txt
│ ├── infrastructure.txt
│ └── apt.txt
└── formats/ # Ready-to-include firewall snippets
├── nginx-deny.conf
├── apache-htaccess.txt
└── iptables.sh
Dateiformate
TXT-Format
Klartext, eine IP-Adresse pro Zeile. Zeilen, die mit # sind Kommentare,
die Metadaten wie Erstellungszeit und Gesamtanzahl enthalten.
Text
# ReportedIP Blacklist - All IPs
# https://reportedip.de
#
# Copyright (c) 2026 ReportedIP / Patrick Schlesinger
# Licensed under CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
#
# IMPORTANT: Data is delayed by 48 hours.
# For real-time threat intelligence via API, contact: [email protected]
#
# Generated: 2026-07-22
# Total IPs: 12847
#
1.2.3.4
5.6.7.8
9.10.11.12
JSON-Format
A meta block (export version, counts, generation timestamp) followed by an
entries array. categories are numeric threat-category IDs — resolve
them against the threat-category catalogue
oder GET /categories.
Comma-separated values with a header row. Easy to import into spreadsheets, databases, or SIEM tools.
categories holds semicolon-separated numeric category IDs.
Verwenden Sie die Blacklist-Dateien, um bösartige IP-Adressen auf Firewall- oder Webserver-Ebene zu blockieren.
Nachfolgend finden Sie Integrationsbeispiele für gängige Tools.
Nginx
Erstellen Sie eine Blocklistenkonfiguration und fügen Sie diese in Ihren Nginx-Serverblock ein:
# /etc/nginx/sites-enabled/default
server {
include /etc/nginx/blocklist.conf;
# ... rest of your config
}
Apache (.htaccess)
Apache
# .htaccess — Block reported IPs
<RequireAll>
Require all granted
Require not ip 1.2.3.4
Require not ip 5.6.7.8
Require not ip 9.10.11.12
</RequireAll>
iptables
bash
# Block all IPs from the blacklist
while read ip; do
iptables -A INPUT -s "$ip" -j DROP
done < blacklist-all.txt
fail2ban
Erstellen Sie eine benutzerdefinierte Jail, die IP-Adressen aus der ReportedIP sperrt:
fail2ban also works in the other direction: a ready-made action reports every ban on your server
to the community via POST /report. See the
fail2ban integration guide for the
action config and the jail-to-category mapping.
API-Zugriff
Die /blacklist endpoint provides real-time access to the full blacklist with
filtering options. An API key with the threat-feed feature (Contributor tier and up) is required.
The endpoint is feature-gated and does nicht count against your daily check or
report quota — poll it as often as your caching strategy needs. See
Authentication & Rate Limits
for tiers and keys.
Parameter
Typ
Beschreibung
format
Zeichenkette
Format der Antwort: json (Standard), txt, csv
source
Zeichenkette
Quelle der schwarzen Liste: dynamic (default) — the community-driven, automatically scored blacklist. Other values are reserved for internal use
One or more threat category IDs, comma-separated (e.g. 22,18 for SSH plus generic brute-force). Full catalogue on the Threat Categories page or via GET /categories
limit
Ganzzahl
Maximum number of IPs to return. Default: 10000 — keep the default; smaller values truncate the list
Die vollständige Dokumentation zu den Endpunkten,
dem Antwortformat und weiteren Parametern finden Sie in der API-Referenz.
Service-specific blacklists
Combine the category filter with confidence=90 to build one block list per
exposed service. Each list only contains IPs that were reported for the matching attack type, so you
can apply it port-scoped — an IP on the web list never locks anyone out of SSH.
Web App Attack, SQL Injection, Web Spam, Bad Web Bot, Blog Spam — covers WordPress login/XML-RPC/REST brute force, plugin and core exploits, comment spam and scanning, which are reported under these IDs
# SSH attackers only, plain text for ipset/nftables
curl -H "X-Key: YOUR_API_KEY" \
"https://reportedip.de/wp-json/reportedip/v2/blacklist?confidence=90&format=txt&limit=10000&category=22,18"
Lists are regenerated server-side every 15 minutes. Hourly polling per list is plenty; send the
stored ETag back as If-None-Match and unchanged lists answer with
304 Not Modified. All valid category IDs are in the range 1–30 — see the
Threat Categories catalogue.
Skript für automatische Updates
Richten Sie einen Cron-Job ein, um die aktuelle Blacklist automatisch herunterzuladen und Ihre Firewall-Regeln zu aktualisieren.
Important: The GitHub repository is pushed daily, but the exported data carries a
48-hour false-positive cool-down. For real-time blocking with the most current data, use the API
directly — it reflects changes immediately as new reports come in, while the GitHub files lag
behind by up to two days. Mail servers can also consume the blacklist as a
DNSBL / RBL zone without downloading files at all.