Erstellen eines Netzwerk-Scanners in Python

PythonPythonIntermediate
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernen Sie, wie Sie einen Netzwerkscanner mit Python erstellen. Der Netzwerkscanner nutzt das Befehlszeilentool nmap, um eine angegebene IP-Adresse zu scannen und die Ergebnisse in einer grafischen Benutzeroberfläche (GUI) mithilfe der Tkinter-Bibliothek anzuzeigen.

Beispiel einer Netzwerkscanner-GUI

🎯 Aufgaben

In diesem Projekt lernen Sie:

  • Wie Sie das Projekt einrichten und die erforderlichen Bibliotheken installieren
  • Wie Sie die erforderlichen Bibliotheken für die GUI und die Ausführung des Befehlszeilentools nmap importieren
  • Wie Sie eine Scanning-Funktion definieren, um die vom Benutzer eingegebene IP-Adresse abzurufen und das Netzwerk zu scannen
  • Wie Sie das Hauptfenster der GUI erstellen
  • Wie Sie ein Eingabefeld für die IP-Adresse und eine Schaltfläche "Netzwerk scannen" hinzufügen
  • Wie Sie einen Textbereich erstellen, um die Scanergebnisse anzuzeigen
  • Wie Sie das Projekt ausführen und Netzwerkscans durchführen

🏆 Errungenschaften

Nach Abschluss dieses Projekts können Sie:

  • Ein Python-Projekt einrichten und Bibliotheken installieren
  • Bibliotheken importieren und in einem Python-Skript verwenden
  • Eine GUI mit Tkinter erstellen
  • Benutzer-Eingaben verarbeiten und Funktionen auslösen
  • Das Befehlszeilentool nmap für Netzwerkscans nutzen
Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 80% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Projekt einrichten

Erstellen Sie eine neue Python-Datei und benennen Sie sie network_scanner.py. Öffnen Sie die Datei in einem Code-Editor Ihrer Wahl.

cd ~/project
touch network_scanner.py

Installieren Sie anschließend das Befehlszeilentool nmap, tkinter und python-nmap mit dem folgenden Befehl:

sudo apt update
sudo apt-get install nmap -y
sudo apt-get install python3-tk -y
sudo pip install python-nmap
✨ Lösung prüfen und üben

Notwendige Bibliotheken importieren

Am Anfang der Datei importieren Sie die erforderlichen Bibliotheken: tkinter für die GUI und subprocess für die Ausführung des Befehlszeilentools nmap.

import tkinter as tk
import subprocess
✨ Lösung prüfen und üben

Die Scanning-Funktion definieren

Definieren Sie eine Funktion namens scan_network, die ausgelöst wird, wenn die Schaltfläche "Netzwerk scannen" geklickt wird. Diese Funktion ruft die vom Benutzer eingegebene IP-Adresse ab, löscht den Ergebnistextbereich und führt den nmap-Befehl aus, um das Netzwerk zu scannen.

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.")
✨ Lösung prüfen und üben

Das Hauptfenster erstellen

Erstellen Sie das Hauptfenster der GUI mit der Tk()-Klasse aus Tkinter.

window = tk.Tk()
window.title("Network Scanner")
✨ Lösung prüfen und üben

Eingabefeld und Scan-Schaltfläche hinzufügen

Erstellen Sie eine Beschriftung (Label) und ein Eingabefeld, damit der Benutzer die IP-Adresse eingeben kann. Erstellen Sie dann eine Schaltfläche "Netzwerk scannen", die die scan_network-Funktion aufruft, wenn sie geklickt wird.

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()
✨ Lösung prüfen und üben

Ergebnistextbereich hinzufügen

Erstellen Sie einen Textbereich mit der Text()-Klasse aus Tkinter. Dieser Textbereich zeigt die Scanergebnisse an.

result_text = tk.Text(window)
result_text.pack()
✨ Lösung prüfen und üben

Die Hauptschleife starten

Fügen Sie am Ende der Datei die folgende Zeile hinzu, um die Hauptschleife der GUI zu starten:

window.mainloop()
✨ Lösung prüfen und üben

Das Projekt ausführen

Speichern Sie die Datei und führen Sie sie mit einem Python-Interpreter aus. Das GUI-Fenster wird erscheinen.

cd ~/project
python network_scanner.py

Geben Sie die IP-Adresse, die Sie scannen möchten, in das Eingabefeld ein und klicken Sie auf die Schaltfläche "Scan Network". Der Netzwerkscan wird mit nmap durchgeführt, und die Ergebnisse werden im Textbereich angezeigt.

Netzwerk-Scanner GUI-Fenster
✨ Lösung prüfen und üben

Zusammenfassung

In diesem Projekt haben Sie gelernt, wie Sie mit der Tkinter-Bibliothek einen Netzwerk-Scanner in Python erstellen können. Der Netzwerk-Scanner nutzt das Befehlszeilentool nmap, um eine angegebene IP-Adresse zu scannen. Die Ergebnisse werden in einer grafischen Benutzeroberfläche (Graphical User Interface, GUI) angezeigt, sodass Benutzer einfach Netzwerkscans durchführen und die Ausgabe anzeigen können. Sie können den Netzwerk-Scanner weiter verbessern, indem Sie je nach Ihren Anforderungen weitere Funktionen hinzufügen und die Benutzeroberfläche verbessern.