Ein moderner, stabiler und erweiterbarer Netzwerkscanner für macOS und Linux mit interaktiver Terminal-UI. Führt parallele Ping-Sweeps aus und bietet detaillierte Host-Informationen inklusive Port-Scanning.
- Parallele Netzwerk-Scans mit konfigurierbarer Concurrency
- Scan-Profile: Vordefinierte Profile (Quick/Normal/Thorough/Stealth) für verschiedene Einsatzzwecke
- Export-Formate: CSV, Markdown und HTML für professionelle Berichte
- Flexible Zielangabe: CIDR, IP-Bereiche (z.B.
192.168.1.10-50) und einzelne IPs - Automatische Netz-Erkennung (ohne Argumente wird das lokale Netz gescannt)
- Comprehensive Port-Scanning: Top 10.000 Ports mit Service-Erkennung
- Persistent Cache: Port-Scan-Ergebnisse werden zwischengespeichert (1 Stunde TTL)
- Hostname- und MAC-Auflösung via Reverse DNS, mDNS und ARP
- Minimal Dependencies: Nur PyYAML (für Profile-Konfiguration)
- Modernes Split-Panel Layout:
- Linkes Panel: Detaillierte Host-Informationen
- IP-Adresse, Hostname, MAC-Adresse
- Status (UP/DOWN) mit farbiger Kennzeichnung
- Latenz-Messung
- Liste aller offenen Ports mit Service-Namen
- Rechtes Panel: Scrollbare Host-Liste (bis zu 254 Hosts)
- Linkes Panel: Detaillierte Host-Informationen
- Live-Netzwerk-Traffic mit geglätteten Sparkline-Graphen (RX/TX)
- Echtzeit-Updates während des Scannens mit Fortschrittsanzeige
- Scan-Profile: Schnellwahl mit Shift+P (Quick/Normal/Thorough/Stealth)
- Export-Dialog: Shift+E für interaktiven Export (CSV/Markdown/HTML)
- Intelligente Port-Scanning: Automatischer Port-Scan mit persistentem Cache
- Cache-Management: Shift+C zum Löschen, Anzeige des Cache-Alters
- Flexible Sortierung nach IP, Status, Latenz, Hostname oder MAC
- Filter-Optionen: Alle Hosts oder nur aktive (UP) Hosts anzeigen
- CSV-Export: Strukturierte Daten für Spreadsheets und Datenbanken
- Markdown-Export: GitHub-freundliche Dokumentation mit Tabellen
- HTML-Export: Interaktive Berichte mit Sortierung und Suchfunktion
- Farbige, übersichtliche Tabelle (CLI)
- JSON-Ausgabe für Automatisierung
- Debug-Modus mit detaillierten Informationen
- Python 3.9 oder neuer
- PyYAML (
pip install pyyaml) - System-Ping vorhanden (macOS:
/sbin/ping, Linux:/bin/ping) - Optional (für bessere Hostnamen auf Linux):
avahi-utils(avahi-resolve-address)
python -m netscan <CIDR|Range|IP>
# ohne Argumente: lokales Netz automatisch scannen
python -m netscanpip install -e .
netscan 192.168.1.0/24
netscan-tui # interaktive Terminal starten# Gesamtes /24-Netz scannen
netscan 192.168.1.0/24
# Mit Scan-Profil (quick/normal/thorough/stealth)
netscan --profile quick
netscan --profile thorough --output-html audit.html
# Alle verfügbaren Profile anzeigen
netscan --list-profiles
# Eigenes Profil speichern
netscan --save-profile my-profile -c 100 -t 1.5
# Export-Optionen
netscan 192.168.1.0/24 --output-csv scan.csv
netscan 192.168.1.0/24 --output-md scan.md
netscan 192.168.1.0/24 --output-html scan.html
# Bereichs-Scan
netscan 192.168.1.10-192.168.1.50
netscan 192.168.1.10-50
# Einzelne IP
netscan 192.168.1.20
# JSON-Ausgabe mit 200 gleichzeitigen Pings und 1.5s Timeout
netscan 10.0.0.0/24 -c 200 -t 1.5 --json
# Farbausgabe deaktivieren
netscan 192.168.1.0/24 --no-color
# Debug-Modus
netscan --debugnetscan-tui| Taste | Funktion |
|---|---|
s |
Netzwerk-Scan starten |
r |
Interface/Netz neu erkennen |
a |
Filter umschalten (ALL ↔ UP) |
Shift+P |
Scan-Profil auswählen (Quick/Normal/Thorough/Stealth) |
e |
Export-Dialog öffnen (CSV/Markdown/HTML) |
Shift+C |
Port-Scan-Cache löschen |
↑/↓ oder j/k |
Host auswählen |
Enter |
Ports des ausgewählten Hosts neu scannen |
1-5 |
Sortierspalte wählen (1=IP, 2=Status, 3=Latenz, 4=Hostname, 5=MAC) |
o |
Sortierspalte zyklisch wechseln |
O |
Sortierreihenfolge umkehren (↑ ↔ ↓) |
q |
Beenden |
- Live-Traffic-Graphen: Geglättete Sparklines für RX (magenta) und TX (blau) mit aktuellem Wert und dynamischem Maximum
- Auto-Port-Scan: Beim Navigieren zwischen Hosts werden automatisch die Ports gescannt
- Persistent Cache: Port-Scan-Ergebnisse werden für 1 Stunde gespeichert (~/.netscan_cache.json)
- Scan-Profile: Schnellwahl optimierter Einstellungen für verschiedene Szenarien
- Export-Dialog: Interaktiver Export mit Format-Auswahl und Dateinamen-Editor
- Detailliertes Host-Panel: Zeigt alle relevanten Informationen zum ausgewählten Host
- Service-Erkennung: Bekannte Services werden automatisch erkannt (SSH, HTTP, HTTPS, MySQL, PostgreSQL, RDP, etc.)
- Responsive Layout: Passt sich automatisch an die Terminal-Größe an
| Profil | Beschreibung | Concurrency | Timeout | Ports | Dauer | Einsatzzweck |
|---|---|---|---|---|---|---|
| Quick 🚀 | Schneller Scan | 256 | 0.5s | Top 100 | <1 min | Gesundheitschecks, schnelle Übersicht |
| Normal ⚖️ | Ausgewogen | 128 | 1.0s | Top 1000 | 2-3 min | Tägliches Monitoring, Standard-Scans |
| Thorough 🔍 | Tiefgehend | 64 | 2.0s | 1-10000 | 5-10 min | Sicherheits-Audits, vollständiges Inventar |
| Stealth 🥷 | Unaufällig | 10 | 3.0s | Top 1000 | 10-15 min | IDS-Vermeidung, Produktions-Scans |
Eigene Profile können gespeichert und wiederverwendet werden:
# Profil mit eigenen Einstellungen speichern
netscan --save-profile my-profile -c 150 -t 1.2
# Gespeichertes Profil verwenden
netscan --profile my-profile
# Alle Profile anzeigen (inkl. custom)
netscan --list-profilesProfile werden in ~/.netscan/profiles/ als YAML-Dateien gespeichert.
Beispiel-Profile finden Sie in examples/custom-profiles/:
- production-safe: Konservative Einstellungen für Live-Systeme
- home-network: Optimiert für Heimnetzwerke
- pentest-deep: Umfassend für Security-Tests
- iot-discovery: Geduldig für IoT-Geräte
cidr: Ziel(e) als CIDR/Range/IP-c/--concurrency: Anzahl gleichzeitiger Pings (Standard: 128)-t/--timeout: Timeout pro Paket in Sekunden (Standard: 1.0)--count: ICMP Echo Requests pro Host (Standard: 1)-p/--profile: Scan-Profil verwenden (quick/normal/thorough/stealth/custom)--list-profiles: Alle verfügbaren Profile anzeigen--save-profile: Aktuelle Einstellungen als Profil speichern--output-csv: Export nach CSV--output-md: Export nach Markdown--output-html: Export nach HTML (interaktiv)--include-down: DOWN-Hosts in Export einschließen--no-emoji: Emoji in Markdown-Export deaktivieren--json: JSON-Ausgabe--no-color: Farbige Ausgabe deaktivieren--debug: Detaillierte Debug-Informationen ausgeben
- Scan-Bereich: Top 10.000 Ports (1-10000)
- Methode: TCP-Connect (kein Root erforderlich)
- Concurrency: 256 parallele Verbindungen
- Timeout: 0.5 Sekunden pro Port
- Service-Erkennung: Automatische Zuordnung von Port-Nummern zu Service-Namen
netscan.scanner: Ping-Logik, Ziel-Parsing, Port-Scanningnetscan.cli: Kommandozeilen-Interface, farbige Tabelle, JSON-Ausgabenetscan.tui: Interaktive Terminal-UI mit Split-Panel-Layoutnetscan.profiles: Scan-Profile-Verwaltung (YAML-basiert)netscan.export: Export-Engine für CSV, Markdown und HTMLnetscan.netinfo: Lokales Netzwerk/IP-Ermittlungnetscan.resolve: Hostname-Resolution (PTR + mDNS)netscan.arp: ARP/Nachbartabelle für MAC-Adressennetscan.vendor: OUI→Vendor-Zuordnungnetscan.traffic: Netzwerk-Traffic-Monitoring
- Modularer Aufbau ermöglicht einfache Erweiterungen
- Ergebnisobjekte enthalten strukturierte Daten (IP, Status, Latenz, Hostname, MAC)
- Plugin-ready für zusätzliche Scanner-Funktionen
- Konfigurierbare Rate-Limits (Token-Bucket-Algorithmus)
- Erweiterte OUI-Datenbank für bessere Vendor-Erkennung
- Service-Banner-Grabbing mit Version-Detection
- IPv6-Unterstützung
- Aktives mDNS-Browsing (dns-sd/avahi-browse)
- ARP/NDP-Discovery für lokale Netze
- Historische Daten und Änderungsverfolgung
- TUI Settings Panel mit allen Konfigurationen
MIT
- Basiert auf OUI-Datenbanken von Wireshark (manuf) oder Nmap (nmap-mac-prefixes)
- Bevorzugt längste passende Präfixlänge (36 Bit vor 24 Bit)
- Fallback auf interne Mini-Datenbank
- Randomisierte MACs werden als "Locally administered (randomized)" erkannt
- Für große Netze: Concurrency erhöhen (
-c 256) - Für langsame Netze: Timeout erhöhen (
-t 2.0) - TUI: Auto-Port-Scan kann bei vielen Hosts CPU-intensiv sein
- Port-Scanning nutzt TCP-Connect (langsamer als SYN-Scan, aber kein Root erforderlich)
- MAC-Adressen nur im lokalen Subnetz verfügbar
- mDNS-Resolution abhängig vom System-Setup
Entwickelt von Linus Malbertz
Inspiriert von nmap, angry IP scanner und btop
Version: 0.1.2
Letztes Update: Oktober 2025
- Release Notes - Detaillierte Änderungen und neue Features
- LICENSE - MIT License