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
此方法利用了Unix系統上的hostname指令來取得IP位址,並傳回字串格式的IP位址。如果你使用的是Windows系統,則需要使用ipconfig指令。你可以在subprocess.check_output中傳遞正確的指令,以便在Windows上取得IP位址。
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
此方法利用getaddrinfo函數取得電腦的IP位址,並傳回字串格式的IP位址。
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
此方法使用netifaces模組來取得電腦的網路介面列表,並找出第一個非本機回環介面的IP位址。然後,它傳回一個字串格式的IP位址。
如果你是在Linux系統上執行Python程序,可以使用ifconfig指令來取得內網IP位址。以下是一個可以在Linux系統上使用的Python函數:
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
該方法使用subprocess模組來執行Linux ifconfig命令,並從命令輸出中提取IP位址。它傳回一個字串格式的IP位址。
請注意,此方法僅適用於Linux系統。如果你使用的是其他作業系統,請使用前面提到的方法之一來取得電腦的內部IP位址。
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
以上是Python如何取得本機內部網路IP位址的詳細內容。更多資訊請關注PHP中文網其他相關文章!