
whosthere v0.8.3
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? đȘ
Whosthere
Werkzeug zur Erkennung von GerÀten im lokalen Netzwerk mit einer interaktiven Terminal-BenutzeroberflÀche (TUI), geschrieben in Go. Entdecke, erkunde und verstehe dein LAN auf intuitive Weise.
Whosthere fĂŒhrt unprivilegierte, nebenlĂ€ufige 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 aus, um GerĂ€te in deinem lokalen Netzwerk zu identifizieren. Diese Technik fĂŒllt den ARP-Cache, ohne erhöhte Berechtigungen 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?â

Funktionen
- Interaktive TUI: Navigiere und erkunde entdeckte GerÀte intuitiv.
- Schnell & nebenlÀufig: Nutzt mehrere Erkennungsmethoden gleichzeitig.
- Keine erhöhten Berechtigungen erforderlich: LÀuft vollstÀndig im User-Space.
- GerÀte-Anreicherung: Verwendet OUI-Lookup, um GerÀtehersteller anzuzeigen.
- Integrierter Portscanner: Optionale Diensterkennung auf gefundenen Hosts (scanne nur GerÀte mit Erlaubnis!).
- Daemon-Modus mit HTTP-API: LÀuft im Hintergrund und lÀsst sich in andere Tools integrieren.
- Theming & Konfiguration: Passe Aussehen und Verhalten ĂŒber eine YAML-Konfiguration an.
Installation
Ă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.
Verwendung
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
Weitere Kommandozeilenoptionen findest du mit:
whosthere --help
TastenkĂŒrzel (TUI)
| 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 |
Konfiguration
Whosthere unterstĂŒtzt mehrere Konfigurationsmethoden mit folgender PrioritĂ€t (von höchster zu niedrigster):
- Kommandozeilen-Flags - Höchste PrioritÀt. Siehe
whosthere --helpfĂŒr verfĂŒgbare Flags. - Umgebungsvariablen - PrĂ€fix
WHOSTHERE__. Siehe Konfiguration ĂŒber Umgebungsvariablen. - Konfigurationsdatei - YAML-Konfigurationsdatei. Siehe Konfigurationsdatei.
- Standardwerte - Fallback-Standardwerte. Siehe
DefaultConfig()in config.go.
Konfigurationsdatei
Whosthere sucht die Konfigurationsdatei in der folgenden Reihenfolge und verwendet die erste gefundene:
- Pfad, der ĂŒber das
--config-Flag oder die UmgebungsvariableWHOSTHERE_CONFIGangegeben wurde $XDG_CONFIG_HOME/whosthere/config.yaml(fallsXDG_CONFIG_HOMEgesetzt 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