
Outil de découverte de réseau local avec une interface utilisateur terminal (TUI) interactive écrite en Go. Découvrez, explorez et comprenez votre réseau local de manière intuitive. Toc Toc.. qui est là ? 🚪
Outil de découverte de réseau local (LAN) avec une interface utilisateur en terminal (TUI) interactive écrite en Go. Découvrez, explorez et comprenez votre LAN de manière intuitive.
Whosthere effectue des analyses simultanées et non privilégiées à l'aide de scanners mDNS et SSDP. De plus, il balaye le sous-réseau local en tentant des connexions TCP/UDP pour déclencher la résolution ARP, puis lit le cache ARP pour identifier les appareils de votre réseau local. Cette technique remplit le cache ARP sans nécessiter de privilèges élevés. Tous les appareils découverts sont enrichis avec des recherches OUI pour afficher les fabricants lorsqu'ils sont disponibles.
Whosthere offre un moyen convivial et intuitif de répondre à la question que se pose tout administrateur réseau : « Qui est là sur mon réseau ? »

Via Homebrew avec brew :
brew install whosthere
Sur NixOS avec nix :
nix profile install nixpkgs#whosthere
Sur Arch Linux avec yay :
yay -S whosthere-bin
Si votre gestionnaire de paquets n'est pas listé, vous pouvez toujours installer avec Go :
go install github.com/ramonvermeulen/whosthere@latest
Ou compiler depuis les sources :
git clone https://github.com/ramonvermeulen/whosthere.git
cd whosthere
make build
De plus, vous pouvez télécharger des binaires précompilés depuis la page des versions.
Lancez la TUI pour une découverte interactive :
whosthere
Lancez en CLI pour effectuer une seule analyse et afficher les résultats :
whosthere scan -t 5
Affichez les résultats dans un fichier JSON :
whosthere scan -t 5 --json --pretty > devices.json
Lancez en mode démon avec l'API HTTP :
whosthere daemon --port=8080
Importez des alias en masse depuis un fichier, ou exportez ceux actuels :
whosthere aliases import ./aliases.yaml
whosthere aliases export --stdout
Des options de ligne de commande supplémentaires sont disponibles en exécutant :
whosthere --help
| Touche | Action |
|---|---|
/ | Démarrer la recherche par regex |
k | Haut |
j | Bas |
g | Aller en haut |
G | Aller en bas |
y | Copier l'IP de l'appareil sélectionné |
Y | Copier la MAC de l'appareil sélectionné |
enter | Afficher les détails de l'appareil |
CTRL+t | Basculer le sélecteur de thème |
CTRL+i | Basculer le sélecteur d'interface |
CTRL+c/q | Arrêter l'application |
ESC | Effacer la recherche / Retour |
p (vue détails) | Démarrer le scan de ports sur l'appareil |
tab (vue modale) | Changer la sélection de bouton |
Whosthere prend en charge plusieurs méthodes de configuration avec la priorité suivante (de la plus élevée à la plus faible) :
whosthere --help pour les options disponibles.WHOSTHERE__. Voir Configuration via les variables d'environnement.DefaultConfig() dans config.go.Whosthere recherche le fichier de configuration dans l'ordre suivant, en utilisant le premier trouvé :
--config ou la variable d'environnement WHOSTHERE_CONFIG$XDG_CONFIG_HOME/whosthere/config.yaml (si XDG_CONFIG_HOME est défini)~/.config/whosthere/config.yaml (emplacement par défaut)Exemple de configuration :
# 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