método uno
import socket
def get_local_ip_address():
ip_address = ''
try:
# 获取本机主机名
hostname = socket.gethostname()
# 获取本机IP
ip_address = socket.gethostbyname(hostname)
except:
pass
return ip_address
Método dos
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
Este método utiliza hostname
el comando en el sistema Unix para obtener la dirección IP y devuelve la dirección IP en formato de cadena. Si está utilizando un sistema Windows, debe utilizar ipconfig
el comando. Puede subprocess.check_output
pasar el comando correcto para obtener la dirección IP en 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
Este método utiliza getaddrinfo
la función para obtener la dirección IP de la computadora y devuelve la dirección IP en formato de cadena.
Método 3 (módulo tripartito)
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
Este método utiliza netifaces
el módulo para obtener una lista de las interfaces de red de la computadora y encuentra la dirección IP de la primera interfaz de loopback no local. Luego devuelve la dirección IP en formato de cadena.
Método 4 (Linux)
Si está ejecutando un programa Python en un sistema Linux, puede usar ifconfig
comandos para obtener la dirección IP de la intranet. Aquí hay una función de Python que se puede usar en sistemas 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
Este método utiliza subprocess
un módulo para ejecutar un ifconfig
comando de Linux y extraer la dirección IP de la salida del comando. Devuelve una dirección IP en formato de cadena.
Tenga en cuenta que este método sólo es aplicable a sistemas Linux. Si está utilizando otro sistema operativo, utilice uno de los métodos mencionados anteriormente para obtener la dirección IP interna de su computadora.
Método cinco (ventanas)
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