Lokale IP-Adressen mit Pythons stdlib finden

Hier ist ein Code-Schnipsel, der das socket-Modul aus der Standardbibliothek von Python verwendet, um die lokalen IP-Adressen des Host-Computers zu finden:

import socket

def get_local_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        # doesn't even have to be reachable
        s.connect(('10.255.255.255', 1))
        IP = s.getsockname()[0]
    except:
        IP = '127.0.0.1'
    finally:
        s.close()
    return IP

print(get_local_ip())

Dieser Code erstellt einen Socket und verbindet sich mit einer nicht-lokalen Adresse mithilfe der connect-Methode des Sockets. Dann wird die eigene Adresse des Sockets mit getsockname() abgerufen, die ein Tuple mit der IP-Adresse und der Portnummer zurückgibt.

Beachten Sie, dass Sie möglicherweise mehrere IP-Adressen haben können. Wenn Sie alle IP-Adressen sehen möchten, verwenden Sie die Methode socket.getaddrinfo().