Torna agli aggiornamenti
New releaseAug 20, 2026

whosthere v0.8.3

Strumento di scoperta di reti locali (LAN) con un'interfaccia utente terminale interattiva (TUI) scritto in Go. Scopri, esplora e comprendi la tua LAN in modo intuitivo. Toc toc.. chi è? 🚪

Condividi

Whosthere

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

Strumento di discovery per Local Area Network con un'interfaccia utente a terminale (TUI) interattiva scritto in Go. Scopri, esplora e comprendi la tua LAN in modo intuitivo.

Whosthere esegue scansioni concorrenti e senza privilegi utilizzando gli scanner mDNS e SSDP. Inoltre, esegue una scansione della sottorete locale tentando connessioni TCP/UDP per attivare la risoluzione ARP, quindi legge la cache ARP per identificare i dispositivi sulla tua Local Area Network. Questa tecnica popola la cache ARP senza richiedere privilegi elevati. Tutti i dispositivi scoperti vengono arricchiti con ricerche OUI per mostrare i produttori quando disponibili.

Whosthere fornisce un modo semplice e intuitivo per rispondere alla domanda che ogni amministratore di rete si pone: "Chi c'è sulla mia rete?"

demo gif

Funzionalità

  • TUI interattiva: Naviga ed esplora i dispositivi scoperti in modo intuitivo.
  • Veloce e concorrente: Sfrutta più metodi di discovery simultaneamente.
  • Nessun privilegio elevato richiesto: Funziona interamente in user-space.
  • Arricchimento dei dispositivi: Utilizza la ricerca OUI per mostrare i produttori dei dispositivi.
  • Port Scanner integrato: Discovery opzionale dei servizi sugli host trovati (scansiona solo i dispositivi per cui hai il permesso!).
  • Modalità Daemon con API HTTP: Esegui in background e integra con altri strumenti.
  • Temi e configurazione: Personalizza l'aspetto e il comportamento tramite configurazione YAML.

Installazione

Tramite Homebrew con brew:

brew install whosthere

Su NixOS con nix:

nix profile install nixpkgs#whosthere

Su Arch Linux con yay:

yay -S whosthere-bin

Se il tuo gestore di pacchetti non è elencato, puoi sempre installare con Go:

go install github.com/ramonvermeulen/whosthere@latest

Oppure compila dai sorgenti:

git clone https://github.com/ramonvermeulen/whosthere.git
cd whosthere
make build

Inoltre, puoi scaricare binari precompilati dalla pagina delle release.

Utilizzo

Avvia la TUI per la discovery interattiva:

whosthere

Esegui come CLI per effettuare una singola scansione e mostrare i risultati:

whosthere scan -t 5

Esporta i risultati in un file JSON:

whosthere scan -t 5 --json --pretty > devices.json

Esegui come daemon con API HTTP:

whosthere daemon --port=8080

Ulteriori opzioni da riga di comando sono disponibili eseguendo:

whosthere --help

Scorciatoie da tastiera (TUI)

TastoAzione
/Avvia ricerca regex
kSu
jGiù
gVai in cima
GVai in fondo
yCopia IP del dispositivo selezionato
YCopia MAC del dispositivo selezionato
enterMostra dettagli dispositivo
CTRL+tAttiva/disattiva selettore tema
CTRL+iAttiva/disattiva selettore interfaccia
CTRL+c/qArresta l'applicazione
ESCCancella ricerca / Torna indietro
p (vista dettagli)Avvia scansione porte sul dispositivo
tab (vista modale)Cambia selezione pulsante

Configurazione

Whosthere supporta diversi metodi di configurazione con la seguente precedenza (dalla più alta alla più bassa):

  1. Flag da riga di comando - Priorità più alta. Vedi whosthere --help per i flag disponibili.
  2. Variabili d'ambiente - Prefisso WHOSTHERE__. Vedi Configurazione tramite variabili d'ambiente.
  3. File di configurazione - File di configurazione YAML. Vedi File di configurazione.
  4. Valori predefiniti - Valori di fallback predefiniti. Vedi DefaultConfig() in config.go.

File di configurazione

Whosthere cerca il file di configurazione nel seguente ordine, utilizzando il primo trovato:

  1. Percorso specificato tramite il flag --config o la variabile d'ambiente WHOSTHERE_CONFIG
  2. $XDG_CONFIG_HOME/whosthere/config.yaml (se XDG_CONFIG_HOME è impostata)
  3. ~/.config/whosthere/config.yaml (posizione predefinita)

Configurazione di esempio:

# 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

Categorie