Heim > Artikel > Backend-Entwicklung > So erhalten Sie die lokale Intranet-IP-Adresse in Python
import socket def get_local_ip_address(): ip_address = '' try: # 获取本机主机名 hostname = socket.gethostname() # 获取本机IP ip_address = socket.gethostbyname(hostname) except: pass return ip_address
import subprocess def get_local_ip_address(): ip_address = '' try: # 获取IP地址 ip_address = subprocess.check_output(['hostname', '-I']).decode('utf-8').strip() except: pass return ip_address
Diese Methode verwendet den Hostnamen-Befehl auf dem Unix-System, um die IP-Adresse abzurufen und gibt die IP-Adresse im String-Format zurück. Wenn Sie ein Windows-System verwenden, müssen Sie den Befehl ipconfig verwenden. Sie können den richtigen Befehl in subprocess.check_output übergeben, um die IP-Adresse unter Windows abzurufen.
import socket def get_local_ip_address(): ip_address = '' try: # 获取IP地址 ip_address = socket.getaddrinfo(socket.gethostname(), None, family=socket.AF_INET, proto=socket.IPPROTO_TCP)[0][4][0] except: pass return ip_address
Diese Methode verwendet die Funktion getaddrinfo, um die IP-Adresse des Computers abzurufen und gibt die IP-Adresse im String-Format zurück.
import netifaces def get_local_ip_address(): ip_address = '' try: # 获取网络接口列表 interfaces = netifaces.interfaces() # 查找第一个非本地回环接口的IP地址 for interface in interfaces: if interface == 'lo': continue addresses = netifaces.ifaddresses(interface) ip_addresses = addresses.get(netifaces.AF_INET) if ip_addresses: ip_address = ip_addresses[0]['addr'] break except: pass return ip_address
Diese Methode verwendet das Netifaces-Modul, um die Netzwerkschnittstellenliste des Computers abzurufen und die IP-Adresse der ersten nicht-lokalen Loopback-Schnittstelle zu finden. Anschließend wird die IP-Adresse im String-Format zurückgegeben.
Wenn Sie ein Python-Programm auf einem Linux-System ausführen, können Sie den Befehl ifconfig verwenden, um die Intranet-IP-Adresse abzurufen. Hier ist eine Python-Funktion, die auf Linux-Systemen verwendet werden kann:
import subprocess def get_local_ip_address(): ip_address = '' try: # 获取IP地址 output = subprocess.check_output(['ifconfig']).decode('utf-8') lines = output.split('\n') for line in lines: if 'inet ' in line and not line.startswith('127.0.0.1'): ip_address = line.split()[1] break except: pass return ip_address
Diese Methode verwendet das Unterprozessmodul, um den Linux-Befehl ifconfig auszuführen und die IP-Adresse aus der Befehlsausgabe zu extrahieren. Es gibt die IP-Adresse im String-Format zurück.
Bitte beachten Sie, dass diese Methode nur auf Linux-Systemen funktioniert. Wenn Sie ein anderes Betriebssystem verwenden, verwenden Sie eine der zuvor genannten Methoden, um die interne IP-Adresse Ihres Computers zu ermitteln.
import os def get_local_ip_address(): ip_address = '' try: # 获取IP地址 ipconfig_process = os.popen('ipconfig') ipconfig_output = ipconfig_process.read() ipconfig_process.close() for line in ipconfig_output.split('\n'): if 'IPv4' in line: ip_address = line.split(': ')[-1] break except: pass return ip_address
Das obige ist der detaillierte Inhalt vonSo erhalten Sie die lokale Intranet-IP-Adresse in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!