
Werkzeug zur Erkennung von lokalen Netzwerken mit einer interaktiven Terminal-Benutzeroberfläche (TUI), geschrieben in Go. Entdecken, erkunden und verstehen Sie Ihr LAN auf intuitive Weise. Klopf Klopf.. wer ist da? 🚪
Werkzeug zur Erkennung lokaler Netzwerke (LAN) mit einer interaktiven Terminal-Benutzeroberfläche (TUI), geschrieben in Go. Entdecke, erkunde und verstehe dein LAN auf intuitive Weise.
Whosthere führt unprivilegierte, gleichzeitige Scans mit mDNS und SSDP-Scannern durch. Zusätzlich durchsucht es das lokale Subnetz, indem es TCP/UDP-Verbindungen versucht, um die ARP-Auflösung auszulösen, und liest dann den ARP-Cache, um Geräte in deinem lokalen Netzwerk zu identifizieren. Diese Technik füllt den ARP-Cache, ohne erhöhte Rechte zu erfordern. Alle entdeckten Geräte werden mit OUI-Lookups angereichert, um Hersteller anzuzeigen, sofern verfügbar.
Whosthere bietet eine freundliche, intuitive Möglichkeit, die Frage zu beantworten, die sich jeder Netzwerkadministrator stellt: „Wer ist da in meinem Netzwerk?“

Über Homebrew mit brew:
brew install whosthere
Auf NixOS mit nix:
nix profile install nixpkgs#whosthere
Auf Arch Linux mit yay:
yay -S whosthere-bin
Wenn dein Paketmanager nicht aufgeführt ist, kannst du immer mit Go installieren:
go install github.com/ramonvermeulen/whosthere@latest
Oder aus dem Quellcode bauen:
git clone https://github.com/ramonvermeulen/whosthere.git
cd whosthere
make build
Zusätzlich kannst du vorgefertigte Binärdateien von der Releases-Seite herunterladen.
Starte die TUI für die interaktive Erkennung:
whosthere
Als CLI ausführen, um einen einzelnen Scan durchzuführen und Ergebnisse auszugeben:
whosthere scan -t 5
Ergebnisse in eine JSON-Datei ausgeben:
whosthere scan -t 5 --json --pretty > devices.json
Als Daemon mit HTTP-API ausführen:
whosthere daemon --port=8080
Aliase in großen Mengen aus einer Datei importieren oder die aktuellen exportieren:
whosthere aliases import ./aliases.yaml
whosthere aliases export --stdout
Weitere Kommandozeilenoptionen findest du mit:
whosthere --help
| Taste | Aktion |
|---|---|
/ | Regex-Suche starten |
k | Nach oben |
j | Nach unten |
g | Zum Anfang springen |
G | Zum Ende springen |
y | IP des ausgewählten Geräts kopieren |
Y | MAC des ausgewählten Geräts kopieren |
enter | Gerätedetails anzeigen |
CTRL+t | Themenauswahl umschalten |
CTRL+i | Schnittstellenauswahl umschalten |
CTRL+c/q | Anwendung beenden |
ESC | Suche löschen / Zurück |
p (Detailansicht) | Portscan auf Gerät starten |
tab (Modalansicht) | Schaltflächenauswahl wechseln |
Whosthere unterstützt mehrere Konfigurationsmethoden mit folgender Priorität (von hoch nach niedrig):
whosthere --help für verfügbare Flags.WHOSTHERE__. Siehe Konfiguration über Umgebungsvariablen.DefaultConfig() in config.go.Whosthere sucht die Konfigurationsdatei in der folgenden Reihenfolge und verwendet die erste gefundene:
--config-Flag oder die Umgebungsvariable WHOSTHERE_CONFIG angegeben wurde$XDG_CONFIG_HOME/whosthere/config.yaml (falls XDG_CONFIG_HOME gesetzt ist)~/.config/whosthere/config.yaml (Standardort)Beispielkonfiguration:
# Uncomment the next line to configure a specific network interface - uses OS default if not set
# network_interface: eth0
# When enabled, devices from all network interfaces are shown and persist when switching interfaces
# Note: if two interfaces share the same subnet (e.g. both use 192.168.1.x), devices may get merged
# since they are identified by IP address. Use with caution on overlapping subnets.
all_interfaces: false
# Optional IPv4 CIDR subnets to sweep. When set, the sweeper skips the auto-detected interface subnet unless it is listed here.
# target_subnets: ["10.0.0.0/24", "10.0.1.0/24"]
# WARNING: scanning subnets larger than /16 sends packets to 65535+ IPs per subnet. Enable only if you understand the traffic implications. Consider using smaller /24 subnets for targeted scanning.
# scan_large_subnets: false
# How often to run discovery scans
scan_interval: 20s
# Maximum timeout for each scan, recommended to be less than the scan interval
scan_timeout: 10s
scanners:
mdns:
enabled: true
ssdp:
enabled: true
arp:
enabled: true
sweeper:
enabled: true
interval: 5m
timeout: 20s
port_scanner:
timeout: 5s
# List of TCP ports to scan on discovered devices
tcp: [21, 22, 23, 25, 80, 110, 135, 139, 143, 389, 443, 445, 993, 995, 1433, 1521, 3306, 3389, 5432, 5900, 8080, 8443, 9000, 9090, 9200, 9300, 10000, 27017]
splash:
enabled: true
delay: 1s
theme:
# When disabled, the TUI will use the terminal it's default ANSI colors
# Also see the NO_COLOR environment variable to completely disable ANSI colors
enabled: true
# See the complete list of available themes at https://github.com/ramonvermeulen/whosthere/tree/main/internal/ui/theme/theme.go
# Set name to "custom" to use the custom colors below
# For any color that is not configured it will take the default theme value as fallback
name: default
# Disable ANSI colors completely, overrides theme.enabled
# Can also be set via NO_COLOR or WHOSTHERE__THEME__NO_COLOR environment variables
# no_color: false