espacios en red de Python – Cómo obtener la interfaz de red utilizada actualmente

Estoy usando netifaces en Python para obtener la dirección IP local, pero ¿cómo elegir la interfaz de red actualmente utilizada (por sistema)? Ayudame por favor. ¡Gracias!

Aún no está del todo claro lo que está preguntando, porque un sistema no necesariamente tiene una interfaz “utilizada” individual. Un sistema puede tener múltiples interfaces con direcciones, y puede estar usando todas ellas para ponerse en contacto con diferentes sistemas.

Por lo general, un sistema (pero no siempre) tendrá una “ruta predeterminada” a través de una interfaz, que generalmente se usa para contactar hosts a los que el sistema no está conectado directamente. Si esto es lo que quieres, puedes usar el módulo de netifaces de Python, como esto:

>>> import netifaces >>> def_gw_device = netifaces.gateways()['default'][netifaces.AF_INET][1] 

Esto le dará el nombre del dispositivo usado por la ruta IPv4 predeterminada. Puedes obtener la dirección MAC de esa interfaz así:

 >>> macaddr = netifaces.ifaddresses('enp0s25')[netifaces.AF_LINK][0]['addr'] 

Por supuesto, puede obtener la misma información analizando la salida del comando ip , pero usar el módulo netifaces es mucho más limpio.