
Herramienta de descubrimiento de red de área local con una interfaz de usuario de terminal interactiva (TUI) escrita en Go. Descubre, explora y comprende tu LAN de forma intuitiva. Toc, toc.. ¿quién es? 🚪
Herramienta de descubrimiento de Red de Área Local con una Interfaz de Usuario de Terminal (TUI) interactiva escrita en Go. Descubre, explora y comprende tu LAN de forma intuitiva.
Whosthere realiza escaneos concurrentes sin privilegios utilizando escáneres mDNS y SSDP. Además, barre la subred local intentando conexiones TCP/UDP para activar la resolución ARP, y luego lee la caché ARP para identificar dispositivos en tu Red de Área Local. Esta técnica llena la caché ARP sin requerir privilegios elevados. Todos los dispositivos descubiertos se enriquecen con búsquedas OUI para mostrar los fabricantes cuando estén disponibles.
Whosthere proporciona una forma amigable e intuitiva de responder a la pregunta que todo administrador de red se hace: "¿Quién está ahí en mi red?"

Vía Homebrew con brew:
brew install whosthere
En NixOS con nix:
nix profile install nixpkgs#whosthere
En Arch Linux con yay:
yay -S whosthere-bin
Si tu gestor de paquetes no está listado, siempre puedes instalar con Go:
go install github.com/ramonvermeulen/whosthere@latest
O compilar desde el código fuente:
git clone https://github.com/ramonvermeulen/whosthere.git
cd whosthere
make build
Además, puedes descargar binarios precompilados desde la página de releases.
Ejecuta la TUI para descubrimiento interactivo:
whosthere
Ejecuta como cli para hacer un único escaneo y mostrar los resultados:
whosthere scan -t 5
Muestra los resultados en un archivo JSON:
whosthere scan -t 5 --json --pretty > devices.json
Ejecuta como daemon con API HTTP:
whosthere daemon --port=8080
Importa alias en masa desde un archivo, o exporta los actuales:
whosthere aliases import ./aliases.yaml
whosthere aliases export --stdout
Se pueden encontrar opciones adicionales de línea de comandos ejecutando:
whosthere --help
| Tecla | Acción |
|---|---|
/ | Iniciar búsqueda regex |
k | Arriba |
j | Abajo |
g | Ir al principio |
G | Ir al final |
y | Copiar IP del dispositivo seleccionado |
Y | Copiar MAC del dispositivo seleccionado |
enter | Mostrar detalles del dispositivo |
CTRL+t | Alternar selector de tema |
CTRL+i | Alternar selector de interfaz |
CTRL+c/q | Detener la aplicación |
ESC | Limpiar búsqueda / Volver atrás |
p (vista de detalles) | Iniciar escaneo de puertos en el dispositivo |
tab (vista modal) | Cambiar selección de botón |
Whosthere admite múltiples métodos de configuración con la siguiente precedencia (de mayor a menor):
whosthere --help para ver los flags disponibles.WHOSTHERE__. Consulta Configuración mediante Variables de Entorno.DefaultConfig() en config.go.Whosthere busca el archivo de configuración en el siguiente orden, usando el primero que encuentre:
--config o la variable de entorno WHOSTHERE_CONFIG$XDG_CONFIG_HOME/whosthere/config.yaml (si XDG_CONFIG_HOME está establecido)~/.config/whosthere/config.yaml (ubicación por defecto)Configuración de ejemplo:
# 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