Holen Sie sich IP-Adressen in Python
-
Verwenden Sie die Funktion
socket.gethostname()
, um die lokale IP-Adresse in Python zu erhalten -
Verwenden Sie die Funktion
socket.getsockname()
, um die lokale IP-Adresse in Python zu erhalten -
Verwenden Sie das Modul
netifaces
, um die lokale IP-Adresse in Python zu erhalten
IP-Adressen sind eine Ziffernfolge beginnend von 0.0.0.0 bis 255.255.255.255, wobei jede Zahl im Adressbereich von 0 bis 255 liegt. Sie kann ein Gerät über ein Netzwerk eindeutig identifizieren.
In diesem Artikel erhalten wir die lokalen IP-Adressen mit Python.
Verwenden Sie die Funktion socket.gethostname()
, um die lokale IP-Adresse in Python zu erhalten
Wir können das socket
-Modul in Python verwenden, um Netzwerkverbindungen herzustellen und Nachrichten über das Netzwerk zu senden.
Die Funktion gethostname()
gibt den Hostnamen des Systems zurück, unter dem Python gerade ausgeführt wird.
Beispielsweise,
import socket
print(socket.gethostbyname(socket.gethostname()))
Ausgabe:
192.168.0.118
Verwenden Sie die Funktion socket.getsockname()
, um die lokale IP-Adresse in Python zu erhalten
Wenn das Computergerät über eine mit dem Internet verbundene Route verfügt, können wir die Funktion getsockname()
verwenden. Es gibt die IP-Adresse und den Port in Form eines Tupels zurück.
Siehe den Code unten.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
Ausgabe:
192.168.0.112
Diese Methode gibt die primäre IP des lokalen Computers zurück, d. h. die Standardroute.
Wir können diese Funktion auch verwenden, um eine benutzerdefinierte Funktion zu erstellen, die keinen routingfähigen Internetzugang benötigt.
Siehe den Code unten.
import socket
def extract_ip():
st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
st.connect(("10.255.255.255", 1))
IP = st.getsockname()[0]
except Exception:
IP = "127.0.0.1"
finally:
st.close()
return IP
print(extract_ip())
Ausgabe:
192.168.0.112
Die obige Methode funktioniert auf allen Schnittstellen. Es funktioniert auch mit allen öffentlichen, privaten und externen IPs. Diese Methode ist unter Linux, Windows und OSX effizient.
Verwenden Sie das Modul netifaces
, um die lokale IP-Adresse in Python zu erhalten
Das Modul netifaces
dient der Auskunft über die Netzwerkschnittstellen und deren Status.
Wir können es verwenden, um die IP-Adresse des lokalen Computers wie unten gezeigt abzurufen.
from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
addresses = [
i["addr"]
for i in ifaddresses(ifaceName).setdefault(AF_INET, [{"addr": "No IP addr"}])
]
print(" ".join(addresses))
Ausgabe:
No IP addr
No IP addr
No IP addr
No IP addr
192.168.0.104
127.0.0.1