# DNSBL Checker
Ein PHP-basierter Dienst zur PrĂĽfung von Domains und IP-Adressen gegen 20 DNSBL-Blacklisten mit automatischer Zertifikatsgenerierung und Auto-Check-Funktion.
## Features
- PrĂĽfung gegen 20 DNSBL-Listen (Spamhaus ZEN, SpamCop, Barracuda, SORBS, Blocklist.de u.v.m.)
- Score-Berechnung: 0–100% (Sauber / Gut / Auffällig / Kritisch)
- Online-Zertifikat mit eindeutigem Token nach jeder PrĂĽfung
- SVG-Badge zum Einbinden auf der eigenen Website
- Auto-Check alle 7 / 14 / 28 / 31 Tage per Cronjob
- E-Mail-Benachrichtigung bei Auto-Check mit Abmelde-Link
- PrĂĽfverlauf (bis zu 10 letzte Checks)
- Abmeldung ĂĽber Token-Link in der E-Mail
## Dateien
| Datei | Beschreibung |
|---|---|
| `config.php` | Datenbank, SMTP, Timeouts, Intervalle |
| `dnsbl_lists.php` | Die 20 DNSBL-Listen |
| `functions.php` | Hilfsfunktionen (DNS, Score, Mail) |
| `install.php` | Erstellt die DB-Tabellen |
| `index.php` | Hauptseite mit Formular und AJAX-Check |
| `check.php` | AJAX-Endpoint fĂĽr die PrĂĽfung |
| `zertifikat.php` | Zertifikat-Anzeige + SVG-Badge |
| `cron.php` | Cronjob fĂĽr Auto-Checks |
| `abmelden.php` | Auto-Check deaktivieren |
| `impressum.php` | Impressum |
| `datenschutz.php` | Datenschutzerklärung |
## Installation
### 1. Dateien hochladen
Alle Dateien in ein Verzeichnis auf dem Webserver hochladen, z.B. `/dnsbl/`.
### 2. config.php anpassen
```php
define('DB_HOST', 'localhost');
define('DB_NAME', 'dnsbl_checker');
define('DB_USER', 'dein_user');
define('DB_PASS', 'dein_passwort');
define('SITE_URL', 'https://deine-domain.de/dnsbl');
define('SMTP_HOST', 'mail.deine-domain.de');
define('SMTP_USER', 'info@deine-domain.de');
define('SMTP_PASS', 'mail-passwort');
define('ADMIN_EMAIL', 'admin@deine-domain.de');
```
### 3. Datenbank anlegen
`install.php` im Browser aufrufen:
```
https://deine-domain.de/dnsbl/install.php
```
Nach erfolgreicher Installation `install.php` löschen!
### 4. Cronjob einrichten
Für den Auto-Check täglich ausführen (prüft nur fällige Einträge):
```
0 6 * * * php /pfad/zu/dnsbl/cron.php
```
Oder per URL (falls kein Shell-Zugriff):
```
0 6 * * * curl -s https://deine-domain.de/dnsbl/cron.php
```
### 5. Impressum & Datenschutz anpassen
In `impressum.php` und `datenschutz.php` die Platzhalter ersetzen:
- `Vorname Nachname` → Ihr Name
- `Musterstraße 1, 12345 Musterstadt` → Ihre Adresse
- `info@deine-domain.de` → Ihre E-Mail
## DNSBL-Listen
| Liste | DNS-Suffix |
|---|---|
| Spamhaus ZEN | zen.spamhaus.org |
| SpamCop | bl.spamcop.net |
| Barracuda | b.barracudacentral.org |
| SORBS Spam | spam.dnsbl.sorbs.net |
| SORBS HTTP | http.dnsbl.sorbs.net |
| SORBS SOCKS | socks.dnsbl.sorbs.net |
| SORBS Zombie | zombie.dnsbl.sorbs.net |
| Blocklist.de | bl.blocklist.de |
| UCEPROTECT L1 | dnsbl-1.uceprotect.net |
| UCEPROTECT L2 | dnsbl-2.uceprotect.net |
| PSBL | psbl.surriel.com |
| WPBL | db.wpbl.info |
| DroneBL | dnsbl.dronebl.org |
| Woody's SMTP | blacklist.woody.ch |
| iX Manitu | ix.dnsbl.manitu.net |
| GBUdb | truncate.gbudb.net |
| S5H | all.s5h.net |
| Interserver | rbl.interserver.net |
| NordSpam | bl.nordspam.com |
| SpamRATS | all.spamrats.com |
## Badge einbinden
```html
<a href="https://deine-domain.de/dnsbl/zertifikat.php?token=DEIN_TOKEN">
<img src="https://deine-domain.de/dnsbl/zertifikat.php?token=DEIN_TOKEN&badge=1"
alt="DNSBL geprĂĽft" width="200">
</a>
```
## Anforderungen
- PHP 8.0+
- MySQL / MariaDB
- PHP-Extensions: `pdo_mysql`, `openssl` (fĂĽr SMTP TLS)
- Cronjob-Zugang (optional, fĂĽr Auto-Check)
## Lizenz
Privates Projekt – alle Rechte vorbehalten.