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()
.