LANScanner – Scanner de réseau local

Outil en ligne de commande (CLI) pour l'analyse et la découverte réseau avec Python

Découvrez comment cet outil a été conçu pour simplifier l'audit des réseaux locaux.

Objectifs du projet

L'objectif principal était de développer un outil performant et léger capable de scanner un réseau local pour identifier tous les hôtes actifs. Le projet visait à fournir à l'administrateur réseau une vue claire des adresses IP et MAC connectées, tout en respectant les bonnes pratiques de développement (modularité, responsabilité unique).

Travail effectué

J'ai développé un outil CLI (Command Line Interface) en Python qui utilise le protocole ARP (Address Resolution Protocol) pour découvrir les hôtes.

J'ai utilisé la bibliothèque Scapy pour forger et envoyer des paquets ARP personnalisés et écouter les réponses.

L'architecture du code a été pensée de manière modulaire :

  • scanner.py : Gère la logique bas niveau d'envoi/réception de paquets.
  • ui.py : Gère l'affichage formaté dans le terminal (tableaux, couleurs).
  • main.py : Orchestre l'ensemble et gère les arguments de la ligne de commande.

Compétences acquises

Programmation Réseau : Manipulation de paquets bruts (ARP) et compréhension des mécanismes de découverte réseau.
Python Avancé : Utilisation de Scapy, structuration de code modulaire et gestion des arguments CLI (argparse).
Architecture Logicielle : Application du principe de responsabilité unique (SRP) pour séparer la logique métier de l'interface utilisateur.
Outils Système : Développement d'outils pour l'administration système et l'audit de sécurité.

Auto-réflexion

Ce projet personnel m'a permis d'aller au-delà de la théorie en manipulant directement les protocoles réseaux. J'ai appris à construire un outil "depuis zéro", ce qui m'a donné une meilleure compréhension de ce qui se passe "sous le capot" lors d'un scan réseau (contrairement à l'utilisation passive d'outils comme Nmap).

La séparation claire entre la logique de scan et l'affichage a été un point clé, rendant le code plus propre et plus facile à maintenir ou à faire évoluer vers une interface graphique future.

Ce projet illustre ma capacité à créer des outils sur mesure pour répondre à des besoins spécifiques d'administration réseau, en alliant compétences en développement logiciel et connaissances approfondies des protocoles.

Retour aux projets