Voltar às atualizações
New releaseAug 20, 2026

whosthere v0.8.3

Ferramenta de descoberta de rede local com uma Interface de Utilizador de Terminal (TUI) interativa escrita em Go. Descubra, explore e compreenda a sua LAN de forma intuitiva. Toc Toc.. quem está aí? 🚪

Compartilhar

Whosthere

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

Ferramenta de descoberta de Rede Local (LAN) com uma Interface de Usuário de Terminal (TUI) interativa escrita em Go. Descubra, explore e entenda sua LAN de forma intuitiva.

O Whosthere realiza varreduras concorrentes e sem privilégios usando scanners mDNS e SSDP. Além disso, ele varre a sub-rede local tentando conexões TCP/UDP para acionar a resolução ARP, e então lê o cache ARP para identificar dispositivos na sua Rede Local. Essa técnica preenche o cache ARP sem exigir privilégios elevados. Todos os dispositivos descobertos são enriquecidos com consultas OUI para exibir os fabricantes quando disponíveis.

O Whosthere oferece uma maneira amigável e intuitiva de responder à pergunta que todo administrador de rede faz: "Quem está aí na minha rede?"

demo gif

Recursos

  • TUI Interativa: Navegue e explore os dispositivos descobertos de forma intuitiva.
  • Rápido e Concorrente: Aproveita múltiplos métodos de descoberta simultaneamente.
  • Não Requer Privilégios Elevados: Executa inteiramente no espaço do usuário.
  • Enriquecimento de Dispositivos: Usa consulta OUI para mostrar os fabricantes dos dispositivos.
  • Scanner de Portas Integrado: Descoberta opcional de serviços em hosts encontrados (escaneie apenas dispositivos com permissão!).
  • Modo Daemon com API HTTP: Execute em segundo plano e integre com outras ferramentas.
  • Temas e Configuração: Personalize a aparência e o comportamento via configuração YAML.

Instalação

Via Homebrew com brew:

brew install whosthere

No NixOS com nix:

nix profile install nixpkgs#whosthere

No Arch Linux com yay:

yay -S whosthere-bin

Se o seu gerenciador de pacotes não estiver listado, você sempre pode instalar com Go:

go install github.com/ramonvermeulen/whosthere@latest

Ou compilar a partir do código-fonte:

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

Além disso, você pode baixar binários pré-compilados na página de releases.

Uso

Execute a TUI para descoberta interativa:

whosthere

Execute como CLI para fazer uma única varredura e exibir os resultados:

whosthere scan -t 5

Exiba os resultados em um arquivo JSON:

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

Execute como daemon com API HTTP:

whosthere daemon --port=8080

Opções adicionais de linha de comando podem ser encontradas executando:

whosthere --help

Atalhos de teclado (TUI)

TeclaAção
/Iniciar busca por regex
kPara cima
jPara baixo
gIr para o topo
GIr para o final
yCopiar IP do dispositivo selecionado
YCopiar MAC do dispositivo selecionado
enterMostrar detalhes do dispositivo
CTRL+tAlternar seletor de tema
CTRL+iAlternar seletor de interface
CTRL+c/qParar aplicação
ESCLimpar busca / Voltar
p (visualização de detalhes)Iniciar varredura de portas no dispositivo
tab (visualização modal)Alternar seleção de botão

Configuração

O Whosthere suporta múltiplos métodos de configuração com a seguinte precedência (da maior para a menor):

  1. Flags de linha de comando - Maior prioridade. Veja whosthere --help para as flags disponíveis.
  2. Variáveis de ambiente - Prefixo WHOSTHERE__. Veja Configuração via Variáveis de Ambiente.
  3. Arquivo de configuração - Arquivo de configuração YAML. Veja Arquivo de Configuração.
  4. Valores padrão - Padrões de fallback. Veja DefaultConfig() em config.go.

Arquivo de Configuração

O Whosthere procura o arquivo de configuração na seguinte ordem, usando o primeiro encontrado:

  1. Caminho especificado via flag --config ou variável de ambiente WHOSTHERE_CONFIG
  2. $XDG_CONFIG_HOME/whosthere/config.yaml (se XDG_CONFIG_HOME estiver definido)
  3. ~/.config/whosthere/config.yaml (local padrão)

Exemplo de configuração:

# 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

Categorias