
whosthere v0.8.3
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à ? 🚪
Whosthere
Outil de découverte de réseau local (LAN) doté d'une interface utilisateur en terminal (TUI) interactive, écrit en Go. Découvrez, explorez et comprenez votre LAN de manière intuitive.
Whosthere effectue des analyses simultanées et sans privilèges à l'aide de scanners mDNS et SSDP. De plus, il balaie le sous-réseau local en tentant des connexions TCP/UDP pour déclencher la résolution ARP, puis lit le cache ARP afin d'identifier les appareils présents sur 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 grâce à des recherches OUI afin d'afficher les fabricants lorsqu'ils sont disponibles.
Whosthere offre un moyen simple et intuitif de répondre à la question que se pose tout administrateur réseau : « Qui est là sur mon réseau ? »

Fonctionnalités
- TUI interactive : Naviguez et explorez les appareils découverts de manière intuitive.
- Rapide et simultané : Exploite plusieurs méthodes de découverte simultanément.
- Aucun privilège élevé requis : Fonctionne entièrement en espace utilisateur.
- Enrichissement des appareils : Utilise la recherche OUI pour afficher les fabricants des appareils.
- Scanner de ports intégré : Découverte de services optionnelle sur les hôtes trouvés (ne scannez que les appareils pour lesquels vous avez l'autorisation !).
- Mode démon avec API HTTP : Exécutez en arrière-plan et intégrez avec d'autres outils.
- Thèmes et configuration : Personnalisez l'apparence et le comportement via un fichier de configuration YAML.
Installation
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.
Utilisation
Lancez la TUI pour une découverte interactive :
whosthere
Exécutez en CLI pour effectuer une seule analyse et afficher les résultats :
whosthere scan -t 5
Exportez les résultats vers un fichier JSON :
whosthere scan -t 5 --json --pretty > devices.json
Exécutez en mode démon avec l'API HTTP :
whosthere daemon --port=8080
Des options de ligne de commande supplémentaires sont disponibles en exécutant :
whosthere --help
Raccourcis clavier (TUI)
| 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 |
Configuration
Whosthere prend en charge plusieurs méthodes de configuration avec la priorité suivante (de la plus élevée à la plus faible) :
- Options de ligne de commande - Priorité la plus élevée. Voir
whosthere --helppour les options disponibles. - Variables d'environnement - Préfixe
WHOSTHERE__. Voir Configuration via les variables d'environnement. - Fichier de configuration - Fichier de configuration YAML. Voir Fichier de configuration.
- Valeurs par défaut - Valeurs de repli par défaut. Voir
DefaultConfig()dans config.go.
Fichier de configuration
Whosthere recherche le fichier de configuration dans l'ordre suivant, en utilisant le premier trouvé :
- Chemin spécifié via l'option
--configou la variable d'environnementWHOSTHERE_CONFIG $XDG_CONFIG_HOME/whosthere/config.yaml(siXDG_CONFIG_HOMEest 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