24 lines
913 B
Python
24 lines
913 B
Python
|
|
import netifaces
|
|||
|
|
|
|||
|
|
def get_primary_ip():
|
|||
|
|
try:
|
|||
|
|
# Получаем список всех интерфейсов
|
|||
|
|
interfaces = netifaces.interfaces()
|
|||
|
|
for iface in interfaces:
|
|||
|
|
# Пропускаем loopback интерфейс
|
|||
|
|
if iface == 'lo':
|
|||
|
|
continue
|
|||
|
|
# Получаем данные об интерфейсе
|
|||
|
|
iface_data = netifaces.ifaddresses(iface)
|
|||
|
|
# Проверяем наличие IPv4 адреса
|
|||
|
|
if netifaces.AF_INET in iface_data:
|
|||
|
|
for addr in iface_data[netifaces.AF_INET]:
|
|||
|
|
ip = addr['addr']
|
|||
|
|
# Исключаем локальные адреса
|
|||
|
|
if not ip.startswith('127.'):
|
|||
|
|
return ip
|
|||
|
|
return "IP не найден"
|
|||
|
|
except Exception as e:
|
|||
|
|
return f"Ошибка: {e}"
|
|||
|
|
|