
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 è? 🚪
Strumento di discovery della Local Area Network con un'interfaccia utente a terminale (TUI) interattiva scritta 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 rilevati 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?"

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.
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
Importa alias in blocco da un file, oppure esporta quelli correnti:
whosthere aliases import ./aliases.yaml
whosthere aliases export --stdout
Ulteriori opzioni da riga di comando sono disponibili eseguendo:
whosthere --help
| Tasto | Azione |
|---|---|
/ | Avvia la ricerca regex |
k | Su |
j | Giù |
g | Vai in cima |
G | Vai in fondo |
y | Copia l'IP del dispositivo selezionato |
Y | Copia il MAC del dispositivo selezionato |
enter | Mostra i dettagli del dispositivo |
CTRL+t | Attiva/disattiva il selettore di tema |
CTRL+i | Attiva/disattiva il selettore di interfaccia |
CTRL+c/q | Arresta l'applicazione |
ESC | Cancella la ricerca / Torna indietro |
p (vista dettagli) | Avvia la scansione delle porte sul dispositivo |
tab (vista modale) | Cambia la selezione del pulsante |
Whosthere supporta diversi metodi di configurazione con la seguente precedenza (dalla più alta alla più bassa):
whosthere --help per i flag disponibili.WHOSTHERE__. Vedi Configurazione tramite variabili d'ambiente.DefaultConfig() in config.go.Whosthere cerca il file di configurazione nel seguente ordine, utilizzando il primo trovato:
--config o la variabile d'ambiente WHOSTHERE_CONFIG$XDG_CONFIG_HOME/whosthere/config.yaml (se XDG_CONFIG_HOME è impostata)~/.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