La biblioteca netifaces en Python proporciona una interfaz para acceder a la información de red del sistema operativo, como direcciones IP, máscaras de subred, puertas de enlace y otras propiedades de las interfaces de red. Aquí tienes algunos ejemplos básicos de uso de netifaces:

Obtener una lista de todas las interfaces de red disponibles:

import netifaces
 
interfaces = netifaces.interfaces()
print(interfaces)

Y este sería el resultado:

Obtener la dirección IP de una interfaz:

import netifaces
 
interfaces = netifaces.interfaces()
 
print(netifaces.ifaddresses(interfaces[4])) # Ponemos 4 para acceder a la interfaz tun0 que está en posición 4 dentro de la lista.

Y este sería el resultado:

Por lo que teniendo todo esto, ya podemos acceder al valor de IP y guardarlo en una variable:

import netifaces
 
interfaces = netifaces.interfaces()
 
tun0 = netifaces.ifaddresses(interfaces[4])
 
ip_address = tun0[2][0]['addr']
print(ip_address)

Y dentro de la variable ip_address ya tenemos guardada la IP: