Scanneur de réseau local
Une interface graphique Tkinter qui scanne un réseau IPv4 local (ARP + sondage nmap), affiche les appareils, permet d'exécuter des scans de ports complets et d'exporter les résultats.
Aperçu rapide
- Scan ARP pour découvrir les appareils sur le LAN.
- Sondages nmap améliorés pour le nom d'hôte, le fabricant, les ports ouverts, l'estimation du système d'exploitation et la latence.
- Bouton de scan complet qui exécute un scan nmap intensif pour un appareil sélectionné.
- Score de risque intelligent (Faible/Moyen/Élevé/Critique) basé sur les ports ouverts détectés.
- Statistiques du tableau de bord en temps réel (nombre total d'appareils, hôtes avec ports ouverts, hôtes à haut risque, latence moyenne).
- Filtre/recherche en direct et colonnes de tableau triables pour un triage plus rapide.
- Re-scanner la sélection, copier l'IP, et informations réseau (IP locale/publique + détails de la plateforme).
- Export des résultats en CSV ou JSON.
Prérequis
- Windows 10/11 (testé)
- Python 3.9+ (3.10+ recommandé)
- Nmap installé et dans le PATH (téléchargement depuis https://nmap.org/)
- Npcap installé (requis par scapy sur Windows) — choisir le « mode compatible WinPcap » si proposé
- Exécuter le script avec les privilèges Administrateur pour une fonctionnalité complète (ARP, sockets brutes, certaines fonctionnalités nmap)
Paquets Python (installation via requirements.txt) :
- scapy
- python-nmap
- tqdm
- requests
Installation
- Ouvrir PowerShell (recommandé : exécuter en tant qu'Administrateur par commodité)
- Créer et activer un environnement virtuel (optionnel mais recommandé)
- python -m venv .venv
- ..venv\Scripts\Activate.ps1
- Installer les paquets
- pip install -r requirements.txt
S'assurer que nmap.exe est installé et disponible dans le PATH (exécuter nmap --version pour vérifier).
Lancer l'interface graphique
Recommandé (Windows) :
- Cliquer droit sur Visual Studio Code et choisir « Exécuter en tant qu'administrateur », ouvrir le projet, appuyer sur F5 pour déboguer ou exécuter.
- Ou ouvrir un PowerShell Administrateur et exécuter :
Remarques :
- Le programme demandera une élévation au démarrage (ShellExecute). Si vous exécutez depuis VS Code, lancez VS Code en tant qu'administrateur pour que le débogueur intégré se lance correctement avec les privilèges.
- Si l'interface graphique n'apparaît pas après avoir accepté la demande UAC, exécutez le script directement depuis un PowerShell élevé pour vérifier.
Configuration VS Code
Si vous souhaitez une configuration de débogage, ajoutez .vscode/launch.json (exemple) :
{
"version": "0.2.0",
"configurations": [
{
"name": "Network Scanner (Admin)",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/app.py",
"console": "integratedTerminal",
"args": []
}
]
}
Important : Sous Windows, il est plus simple de lancer VS Code lui-même en tant qu'Administrateur (clic droit → Exécuter en tant qu'administrateur) avant de lancer la configuration de débogage.
Utilisation de l'interface graphique
- La saisie de plage d'IP accepte :
- CIDR :
192.168.1.0/24
- IP unique :
192.168.1.10
- Plages avec tiret :
192.168.1.1-254 ou 192.168.1.10-192.168.1.20
- Joker :
192.168.1.*
- Liste séparée par des virgules :
192.168.1.1,192.168.1.5,192.168.1.100
- Boutons :
- Démarrer le scan — Découverte ARP + sondages légers
- Scan de ports complet — sélectionner une ligne, cliquer pour exécuter un scan nmap intensif sur cette IP
- Re-scanner la sélection — actualise les détails uniquement pour l'hôte actuellement sélectionné
- Copier l'IP — copie l'IP de l'hôte sélectionné dans le presse-papiers
- Informations réseau — affiche les métadonnées réseau locales/publiques dans le panneau de journal
- Arrêter — demande l'arrêt du scan
- Exporter CSV / Enregistrer JSON — sauvegarder les informations collectées sur les appareils
- Quitter — fermer l'application
- Filtrer les appareils en temps réel (recherche par IP, nom d'hôte, fabricant, OS ou risque) et éventuellement afficher uniquement les hôtes avec des ports ouverts.
- Cliquer sur les en-têtes de colonnes pour trier les lignes.
- Cliquer sur une ligne d'appareil pour afficher un résumé convivial ainsi que les données structurées brutes dans le panneau inférieur. Vous pouvez cliquer sur les lignes du journal pour sélectionner automatiquement les appareils si une IP est présente.
Comportement et limites
- Le scan ARP fonctionne uniquement sur le segment Ethernet/LAN local.
- Les scans de ports complets et la détection d'OS peuvent nécessiter des privilèges administrateur et peuvent prendre plusieurs minutes par hôte.
- L'expansion des tirets/jokers inclut des limites pour éviter des scans accidentellement volumineux (défensif).
- Nmap doit être installé séparément — python-nmap n'est qu'un wrapper.
Dépannage
- Si la boîte de dialogue UAC « accepter admin » apparaît mais que l'interface graphique ne s'ouvre pas :
- Assurez-vous que VS Code a été démarré en tant qu'admin (recommandé) ou exécutez le script dans un PowerShell Administrateur.
- Vérifiez que
nmap --version fonctionne depuis le même environnement.
- Si vous utilisez le débogueur, exécutez la session de débogage à partir d'une instance de VS Code élevée.
- Si scapy échoue sur Windows : vérifiez que Npcap est installé et que votre environnement virtuel utilise le même interpréteur Python.
Sécurité et aspects juridiques
Scannez uniquement les réseaux et appareils que vous possédez ou pour lesquels vous avez une autorisation explicite de test. Les scans non autorisés peuvent être illégaux et perturbateurs.
Feuille de route
Améliorations du scanneur
Interface
Fonctionnalités de sécurité