0ri0n

Scanner de réseau minimal en Python

Un projet d'apprentissage pour créer un scanner de réseau simple et efficace en Python.

pythonréseaucybersécuriténmap

Scanner de réseau minimal en Python

Ce projet présente la création d'un scanner de réseau simple mais efficace en Python, idéal pour apprendre les concepts de base de la reconnaissance réseau.

Objectifs du projet

  • Comprendre les protocoles TCP/UDP
  • Apprendre les techniques de scanning
  • Implémenter une solution légère et portable

Important : Ce projet est uniquement à des fins éducatives. Utilisez-le uniquement sur vos propres réseaux.

Architecture

Le scanner est composé de trois modules principaux :

1. Module de découverte

import socket
import threading
from concurrent.futures import ThreadPoolExecutor

class NetworkScanner:
    def __init__(self, target_network):
        self.target_network = target_network
        self.active_hosts = []
    
    def ping_host(self, ip):
        try:
            socket.setdefaulttimeout(1)
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            result = sock.connect_ex((ip, 80))
            sock.close()
            if result == 0:
                self.active_hosts.append(ip)
        except:
            pass

2. Module de scan de ports

def scan_port(self, host, port):
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)
        result = sock.connect_ex((host, port))
        sock.close()
        return result == 0
    except:
        return False

3. Interface utilisateur

Le scanner dispose d'une interface en ligne de commande simple :

python scanner.py --target 192.168.1.0/24 --ports 22,80,443,8080

Fonctionnalités

  • Découverte d'hôtes actifs
  • Scan de ports TCP
  • Multithreading pour la performance
  • Export des résultats en JSON
  • Support UDP (en développement)

Performance : Le scanner peut traiter jusqu'à 1000 hôtes en moins de 30 secondes.

Installation

git clone https://github.com/exemple/scanner-reseau
cd scanner-reseau
pip install -r requirements.txt
python scanner.py --help

Utilisation éthique

Ce projet doit être utilisé de manière responsable :

  1. Autorisation : Scannez uniquement vos propres réseaux
  2. Légalité : Respectez les lois locales sur la cybersécurité
  3. Performance : Limitez la vitesse pour éviter de surcharger les réseaux

Prochaines améliorations

  • Support des scans UDP
  • Détection de services
  • Interface graphique
  • Intégration avec Nmap

Ce projet constitue une excellente base pour comprendre les mécanismes de scanning réseau et peut être étendu selon vos besoins spécifiques.