15 Punkte von GN⁺ 2026-01-25 | 1 Kommentare | Auf WhatsApp teilen
  • Whosthere ist ein in Go geschriebenes Erkundungstool für lokale Netzwerke mit einer intuitiven Terminal User Interface (TUI)
    • Geräte im LAN können erkannt und untersucht werden, sodass sich die Netzwerkstruktur besser verstehen lässt
  • Unterstützt Linux, macOS und Windows
  • Nutzt mDNS und einen SSDP-Scanner sowie TCP/UDP-Verbindungsversuche, um den ARP-Cache zu füllen und Geräte zu identifizieren
    • Auch ohne Administratorrechte kann der ARP-Cache verwendet werden, um eine Geräteliste zu sammeln
  • Für erkannte Geräte werden per OUI (Organizationally Unique Identifier)-Lookup Herstellerinformationen angezeigt
  • Apache-2.0-Lizenz

Hauptfunktionen

  • Modern TUI: Bietet eine intuitive Oberfläche zur Navigation durch erkannte Geräte
  • Fast & Concurrent: Liefert schnelle Ergebnisse, indem mehrere Erkundungsmethoden gleichzeitig ausgeführt werden
  • No Elevated Privileges Required: Kann mit normalen Benutzerrechten ausgeführt werden
  • Device Enrichment: Zeigt Herstellerinformationen per OUI-Lookup an
  • Integrated Port Scanner: Enthält eine Port-Scan-Funktion für erkannte Hosts (es wird empfohlen, nur autorisierte Geräte zu scannen)
  • Daemon Mode with HTTP API: Ermöglicht den Hintergrundbetrieb und die Integration mit externen Tools
  • Theming & Configuration: Anpassung von Theme und Verhalten über eine YAML-Konfigurationsdatei

Verwendung

  • TUI starten: whosthere
  • HTTP-API-Daemon-Modus starten: whosthere daemon --port 8080
    • GET /devices: Gibt eine Liste aller erkannten Geräte zurück
    • GET /device/{ip}: Gibt Detailinformationen zu einem bestimmten Gerät zurück
    • GET /health: Zustandsprüfung

1 Kommentare

 
GN⁺ 2026-01-25
Hacker-News-Kommentare
  • Jemand hat ein LAN-Discovery-TUI-Tool in Go gebaut. Es heißt Whosthere und wurde so entwickelt, dass sich Geräte im lokalen Netzwerk ohne Administratorrechte erkennen lassen.
    Es kombiniert mDNS, SSDP, ARP-Cache und OUI-Lookups zur Gerätesuche und unterstützt eine schnelle, tastaturzentrierte UI auf Basis von tview, einen integrierten Port-Scanner, einen HTTP-API-Daemon-Modus und YAML-Konfigurationsdateien.
    Das Projekt entstand, um gleichzeitig Go und Networking zu lernen, und wurde von TUI-Apps wie lazygit, k9s und dive inspiriert.
    Die Installation ist über Homebrew oder go install möglich, unterstützt werden Linux und macOS.

    • Sehr schönes Tool :-) Eine Reverse Lookup-Funktion für IPs wäre hilfreich. In meinem LAN sind Geräte ohne Namen meistens eher verdächtig.
    • Genau nach so etwas habe ich gesucht! Ich habe es mit anderen Scannern verglichen, und Advanced IP Scanner war bei der Erkennung von Hostnamen immer noch am besten.
      Die Ergebnisse in meinem Netzwerk:
      • Advanced IP Scanner: 80 Namen von 309 erkannt
      • Angry IP Scanner: 75 Namen von 315 erkannt
      • whosthere: 54 Namen von 318 erkannt
    • Ich habe es auf Raspbian installiert, und es funktioniert sehr gut. Deutlich besser als der hastig zusammengeschriebene Code von gestern. Eine Funktion zum Protokollieren neu auftauchender Geräte könnte es auch als einfache IDS nutzbar machen.
    • Cool! Ich hatte vor ein paar Tagen selbst eine ähnliche Idee, deshalb freue ich mich, das hier zu sehen. In meinem Netzwerk funktioniert es ebenfalls gut.
    • Es ist ein TUI, warum gibt es also eine X11-Abhängigkeit? Ich hätte etwas auf ncurses-Basis erwartet.
  • Es gibt das bekannte Sprichwort: „Wer sich nicht an nmap erinnern kann, ist dazu verdammt, es schlecht neu zu bauen.“
    Geteilt wurde ein Beispielbefehl, der ohne Root-Rechte einen /24-Scan in unter 10 Sekunden abschließt.
    Siehe die offizielle nmap-Dokumentation.

    • Ich nutze nmap auch oft, aber dieses Tool scheint einen anderen Zweck oder zusätzliche Funktionen zu haben. Ich frage mich, warum das als Beispiel dafür gelten soll, dass jemand nmap „nicht im Kopf hatte“.
    • LLDP und CDP würden sich wahrscheinlich auch gern an der Unterhaltung beteiligen.
  • Vor fünf Jahren hat jemand mit derselben Idee schon ein ähnliches CLI-Tool gebaut, sogar mit praktisch demselben Namen: die polnische Version von „whosthere“, nämlich ktotu.
    Link zum ktotu-Projekt
    Diese Version ist deutlich ausgereifter, und Go war dafür eine gute Wahl. Es wurde gefragt, ob die Idee vielleicht mit KI erzeugt wurde.

  • Insgesamt ein gut gemachtes Tool. Es wäre praktisch, wenn man mit der Option -i die zu scannende Schnittstelle angeben könnte.
    Auf meinem Laptop funktionierte nur der erste Scan richtig, danach waren keine ARP-Anfragen mehr zu sehen.

    • Stimmt. Um die Netzlast zu reduzieren, gelten für den initialen Scan derzeit folgende Beschränkungen:
      1. Es wird nur das Subnetz der angegebenen Schnittstelle gescannt.
      2. Maximal /16 ist erlaubt.
      3. Der Scan läuft nur einmal alle 5 Minuten (aktuell hart kodiert).
        Die Schnittstelle kann in der YAML-Datei konfiguriert werden; künftig soll das auch per Kommandozeilen-Flag möglich sein.
  • Mit dem Namen „whogoesthere“ wäre es vielleicht noch lustiger gewesen.

    • Ich finde „whodat“ passender.
  • Es wurde gefragt, ob die Go-Standardbibliothek bei TUI-Funktionen besonders stark ist. In letzter Zeit scheinen neue TUIs fast alle in Go geschrieben zu sein.

    • Go hat schnelle Compile- und Laufzeiten und nicht die komplizierten Build-Einschränkungen von Rust.
    • In der Standardbibliothek gibt es kaum etwas für TUIs, aber rivo/tview ist sehr solide.
    • Nicht in der Standardbibliothek, aber viele beliebte Go-TUIs basieren auf Bubble Tea. Dieses Projekt verwendet tview.
  • Mit dem Namen „Whose LAN is it anyway?“ wäre es noch wortwitziger gewesen.

  • Starkes technisches Können. Das wirkt wie der echte Weg zum Engineer.
    Netzwerkverkehr kann man damit zwar nicht direkt sehen, aber man begegnet oft Leuten, die Probleme ohne solche Tools diagnostizieren wollen.
    In der Praxis sind Tools wie nmap, wireshark, LLDP und CDP unverzichtbar; für große Netzwerke wurde Netdisco empfohlen.

  • Es ist interessant, dass „moderne TUIs“ am Ende oft doch nur die Nostalgie von Turbo Vision, Clipper und curses wiederaufleben lassen.

  • Es wurde gefragt, ob das schon mit Tailscale getestet wurde. Das könnte sehr nützlich sein, allerdings unterstützt Tailscale mDNS bislang nicht.
    Zugehöriger Issue-Link