Maison > Article > développement back-end > Comment obtenir l'adresse IP de l'intranet local en 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
Cette méthode utilise la commande hostname sur le système Unix pour obtenir l'adresse IP et renvoie l'adresse IP au format chaîne. Si vous utilisez un système Windows, vous devez utiliser la commande ipconfig. Vous pouvez passer la commande correcte dans subprocess.check_output pour obtenir l'adresse IP sous Windows.
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
Cette méthode utilise la fonction getaddrinfo pour obtenir l'adresse IP de l'ordinateur et renvoie l'adresse IP au format chaîne.
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
Cette méthode utilise le module netifaces pour obtenir la liste des interfaces réseau de l'ordinateur et trouver l'adresse IP de la première interface de bouclage non locale. Il renvoie ensuite l'adresse IP sous forme de chaîne.
Si vous exécutez un programme Python sur un système Linux, vous pouvez utiliser la commande ifconfig pour obtenir l'adresse IP de l'intranet. Voici une fonction Python qui peut être utilisée sur les systèmes Linux :
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
Cette méthode utilise le module subprocess pour exécuter la commande Linux ifconfig et extraire l'adresse IP de la sortie de la commande. Il renvoie l'adresse IP au format chaîne.
Veuillez noter que cette méthode ne fonctionne que sur les systèmes Linux. Si vous utilisez un autre système d'exploitation, utilisez l'une des méthodes mentionnées précédemment pour obtenir l'adresse IP interne de votre ordinateur.
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!