Home >Backend Development >Python Tutorial >How to get the local intranet IP address 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
This method uses the hostname command on the Unix system to obtain the IP address and returns the IP address in string format. If you are using a Windows system, you need to use the ipconfig command. You can pass the correct command in subprocess.check_output to get the IP address on 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
This method uses the getaddrinfo function to obtain the IP address of the computer and returns the IP address in string format.
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
This method uses the netifaces module to obtain the computer's network interface list and find the IP address of the first non-local loopback interface. It then returns the IP address in string format.
If you are running a Python program on a Linux system, you can use the ifconfig command to obtain the intranet IP address. The following is a Python function that can be used on Linux systems:
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
This method uses the subprocess module to run the Linux ifconfig command and extract the IP address from the command output. It returns the IP address in string format.
Please note that this method is only applicable to Linux systems. If you're using a different operating system, use one of the previously mentioned methods to obtain your computer's internal IP address.
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
The above is the detailed content of How to get the local intranet IP address in Python. For more information, please follow other related articles on the PHP Chinese website!