Mit Python offene Ports anzeigen

Grundlegendes

Mit Python offene Ports anzeigen – das geht. Oft ist es in einem Netzwerk nötig, dass man prüft, ob bestimmte Ports offen sind. Um dies zu prüfen, hat man mehrere, verschiedene Optionen.

So kann man u. a. den Portscanner nmap verwenden, die Ports direkt mit der Windows PowerShell prüfen oder aber man verwenden ein kleines Skript um die Ports mit Python zu prüfen.

Die PowerShell funktioniert in der Regel hauptsächlich unter Windows Betriebssysteme, obwohl man Sie auch macOS oder Linux installiert werden kann. Für die letzten beiden Systeme kommt dann auch jeher das Python-Skript infrage.

Script: Mit Python offene Ports anzeigen

In Python kann man mithilfe von verschiedenen Bibliotheken offene Ports anzeigen lassen. Eine gängige Methode besteht darin, die socket-Bibliothek zu verwenden. Dieses kleine Beispiel zeigt ein einfaches Skript, mit welchem ein Port getestet werden kann.

Es wird die socket-Bibliothek verwendet, um ein Socket-Objekt zu erstellen und eine Verbindung zum angegebenen Host und Port herzustellen. Wenn eine Verbindung erfolgreich hergestellt werden kann, bedeutet dies, dass der Port belegt ist.

Andernfalls wird eine Ausnahme ausgelöst, und man kann davon ausgehen, dass der Port frei ist.

Die host- und port-Variablen müssen entsprechend anzupassen werden, um den gewünschten Host und Port zu testen. In diesem Beispiel wird der Port 80 vom Localhost getestet. Der Port 80 ist dabei standardmäßig für das HTTP Protokoll zuständig.

Beachten sollte man jedoch noch, dass die Firewall-Einstellungen auf dem Zielrechner den Zugriff auf den Port blockieren kann, unabhängig davon, ob er tatsächlich frei oder belegt ist.

import socket

def is_port_open(host, port):
    try:
        # Erstellet ein Socket-Objekt
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            # Setzen eine kurze Timeout-Zeit, um das Blockieren zu verhindern
            s.settimeout(1)
            # Versuchen jetzt ein Verbindung zum angegebenen Host und Port herzustellen
            s.connect((host, port))
        # Wenn die Verbindung erfolgreich war, ist der Port belegt
        return True
    except (socket.timeout, ConnectionRefusedError):
        # Wenn eine Ausnahme ausgelöst wird, ist der Port frei
        return False

# Testen, ob der Port 80 auf localhost (127.0.0.1) frei ist
host = "127.0.0.1"
port = 80

if is_port_open(host, port):
    print(f"Port {port} auf {host} ist belegt.")
else:
    print(f"Port {port} auf {host} ist frei.")

Für die Erstellung wurde Visual Studio Code verwendet. Wie man an der Ausgabe sieht, ist der Port 80 auf dem localhost frei.

Mit Python offene Ports anzeigen
Mit Python offene Ports anzeigen

Fazit

Auf die Erläuterung der einzelnen Funktionen und der Syntax von Python habe ich bewusst verzichtet. Es gibt im Netz genügend Kurse, um sich mit der Programmiersprache Python zu beschäftigen.

Es geht hier lediglich um das Skript, um Mit Python offene Ports anzeigen zu lassen.

Das könnte sich auch interessieren:

Keine Produkte gefunden.

Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux-Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte. -> Gern kannst du mich mit einem Kaffee unterstützen!


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kostenlose E-Books für die IT-Administration

Steigere deine IT-Kompetenzen

Ebook - 10 Schritte nach der Windows Installation
Close the CTA

Windows 11, Windows Server, Docker, PowerShell Referenzen, Batch, Linux Terminal, 

u.v.m.