Commit 5: Scanner-Engine (DNS, Portscan, Titel/Favicon, Softwareerkennung, FritzBox TR-064)

This commit is contained in:
2026-07-19 02:22:54 +02:00
parent 129b4253b5
commit 28bccb9d16
13 changed files with 744 additions and 18 deletions

View File

@@ -31,17 +31,24 @@ Grundgerüst aus Commit 1.
> Drag & Drop in der UI) wandert in Commit 6 (Adminbereich) die Startseite
> bleibt bewusst die minimalistische Suche, kein Verwaltungs-UI dort.
## Commit 5 — Scanner
## Commit 5 — Scanner (erledigt)
- FritzBox-Scanner (TR-064/UPnP)
- DNS-, HTTP-, HTTPS-Scanner
- Optionaler Portscanner mit definierter Portliste
- Titel- und Favicon-Auslesen
- Softwareerkennung (Home Assistant, Synology DSM, Frigate, Portainer, Grafana,
Proxmox, Immich, Paperless, Gitea, Vaultwarden, Jellyfin, Nextcloud, Pi-hole,
AdGuard, Unifi, …)
- "Jetzt scannen"-Button; niemals automatische Scans
- Scans überschreiben niemals Displayname, Kategorie, Favorit, Reihenfolge, Alias, Icon
- `apps/backend/src/scanner/`: DNS-Kandidaten-Auflösung, TCP-Portscan (80, 443 +
typische Ports), HTTP-Titel-/Favicon-Extraktion, Softwareerkennung per
Signatur-Liste, FritzBox-TR-064-Client (inkl. selbst implementierter
HTTP-Digest-Authentifizierung)
- `POST /api/scan/devices/:id` und `POST /api/scan/fritzbox` ausschließlich
manuell auslösbar, kein automatischer/zeitgesteuerter Scan
- `upsertDeviceFromScan` / `upsertServiceFromScan` in den Repositories:
garantiert, dass Benutzerfelder (displayName, category, favorite, order,
alias, icon) bei erneuten Scans nie überschrieben werden End-to-End getestet
(Service manuell umbenannt/kategorisiert/favorisiert, erneut gescannt,
Werte blieben erhalten)
> Alle Module wurden gegen echte, lokal gestartete Test-Server verifiziert
> (Port-Erkennung, Titel/Favicon-Parsing, Softwareerkennung, kompletter
> FritzBox-SOAP-/Digest-Auth-Ablauf inkl. Fehlerfall bei falschem Passwort).
> Ein Test gegen eine echte FritzBox war in dieser Umgebung nicht möglich.
## Commit 6 — Adminbereich