Introduction
Dans ce projet, vous apprendrez à créer un scanner de réseau à l'aide de Python. Le scanner de réseau utilisera l'outil en ligne de commande nmap pour scanner une adresse IP spécifiée et afficher les résultats dans une interface graphique utilisateur (GUI) en utilisant la bibliothèque Tkinter.

🎯 Tâches
Dans ce projet, vous apprendrez :
- Comment configurer le projet et installer les bibliothèques nécessaires
- Comment importer les bibliothèques nécessaires pour la GUI et l'exécution de l'outil en ligne de commande
nmap - Comment définir une fonction de scan pour récupérer l'adresse IP saisie par l'utilisateur et scanner le réseau
- Comment créer la fenêtre principale de la GUI
- Comment ajouter un champ de saisie pour l'adresse IP et un bouton "Scanner le réseau"
- Comment créer une zone de texte pour afficher les résultats du scan
- Comment exécuter le projet et effectuer un scan de réseau
🏆 Réalisations
Après avoir terminé ce projet, vous serez en mesure de :
- Configurer un projet Python et installer des bibliothèques
- Importer des bibliothèques et les utiliser dans un script Python
- Créer une GUI à l'aide de Tkinter
- Gérer les entrées utilisateur et déclencher des fonctions
- Utiliser l'outil en ligne de commande
nmappour le scan de réseau
Configurer le projet
Créez un nouveau fichier Python et nommez-le network_scanner.py. Ouvrez le fichier dans un éditeur de code de votre choix.
cd ~/project
touch network_scanner.py
Ensuite, installez les outils en ligne de commande nmap, tkinter et python-nmap en utilisant la commande suivante :
sudo apt update
sudo apt-get install nmap -y
sudo apt-get install python3-tk -y
sudo pip install python-nmap
Importer les bibliothèques nécessaires
Au début du fichier, importez les bibliothèques requises : tkinter pour la GUI et subprocess pour exécuter l'outil en ligne de commande nmap.
import tkinter as tk
import subprocess
Définir la fonction de scan
Définissez une fonction appelée scan_network qui sera déclenchée lorsque le bouton "Scanner le réseau" sera cliqué. Cette fonction récupérera l'adresse IP saisie par l'utilisateur, effacera la zone de texte des résultats et exécutera la commande nmap pour scanner le réseau.
def scan_network():
ip_address = entry_ip.get()
result_text.delete(1.0, tk.END)
result_text.insert(tk.END, f"Scanning network: {ip_address}\n\n")
try:
output = subprocess.check_output(["nmap", "-F", ip_address])
result_text.insert(tk.END, output.decode("utf-8"))
except subprocess.CalledProcessError:
result_text.insert(tk.END, "An error occurred while scanning the network.")
Créer la fenêtre principale
Créez la fenêtre principale de la GUI en utilisant la classe Tk() de Tkinter.
window = tk.Tk()
window.title("Network Scanner")
Ajouter un champ de saisie et un bouton de scan
Créez une étiquette (label) et un champ de saisie pour que l'utilisateur puisse entrer l'adresse IP. Ensuite, créez un bouton "Scanner le réseau" qui appellera la fonction scan_network lorsqu'il sera cliqué.
label_ip = tk.Label(window, text="Enter IP Address:")
label_ip.pack()
entry_ip = tk.Entry(window)
entry_ip.pack()
scan_button = tk.Button(window, text="Scan Network", command=scan_network)
scan_button.pack()
Ajouter une zone de texte pour les résultats
Créez une zone de texte en utilisant la classe Text() de Tkinter. Cette zone de texte affichera les résultats du scan.
result_text = tk.Text(window)
result_text.pack()
Démarrer la boucle principale
Ajoutez la ligne suivante à la fin du fichier pour démarrer la boucle principale de la GUI :
window.mainloop()
Exécuter le projet
Enregistrez le fichier et exécutez-le à l'aide d'un interpréteur Python. La fenêtre de la GUI apparaîtra.
cd ~/project
python network_scanner.py
Entrez l'adresse IP que vous souhaitez scanner dans le champ de saisie et cliquez sur le bouton "Scan Network". Le scan du réseau sera effectué à l'aide de nmap, et les résultats seront affichés dans la zone de texte.

Résumé
Dans ce projet, vous avez appris à créer un scanner de réseau en Python en utilisant la bibliothèque Tkinter. Le scanner de réseau utilise l'outil en ligne de commande nmap pour scanner une adresse IP spécifiée. Les résultats sont affichés dans une interface graphique utilisateur (GUI), permettant aux utilisateurs de réaliser facilement des scans de réseau et de visualiser la sortie. Vous pouvez améliorer davantage le scanner de réseau en ajoutant plus de fonctionnalités et en améliorant l'interface utilisateur selon vos besoins.



