ZurĂŒck zu den Updates
New releaseAug 20, 2026

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? đŸšȘ

Teilen

Whosthere

Go Version License GitHub Downloads (all assets, all releases) GitHub Release GitHub Repo stars

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?“

demo gif

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)

TasteAktion
/Regex-Suche starten
kNach oben
jNach unten
gZum Anfang springen
GZum Ende springen
yIP des ausgewÀhlten GerÀts kopieren
YMAC des ausgewÀhlten GerÀts kopieren
enterGerÀtedetails anzeigen
CTRL+tThemenauswahl umschalten
CTRL+iSchnittstellenauswahl umschalten
CTRL+c/qAnwendung beenden
ESCSuche 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):

  1. Kommandozeilen-Flags - Höchste PrioritĂ€t. Siehe whosthere --help fĂŒr verfĂŒgbare Flags.
  2. Umgebungsvariablen - PrĂ€fix WHOSTHERE__. Siehe Konfiguration ĂŒber Umgebungsvariablen.
  3. Konfigurationsdatei - YAML-Konfigurationsdatei. Siehe Konfigurationsdatei.
  4. Standardwerte - Fallback-Standardwerte. Siehe DefaultConfig() in config.go.

Konfigurationsdatei

Whosthere sucht die Konfigurationsdatei in der folgenden Reihenfolge und verwendet die erste gefundene:

  1. Pfad, der ĂŒber das --config-Flag oder die Umgebungsvariable WHOSTHERE_CONFIG angegeben wurde
  2. $XDG_CONFIG_HOME/whosthere/config.yaml (falls XDG_CONFIG_HOME gesetzt ist)
  3. ~/.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

Kategorien