Pregunta

¿Cómo puedo hacer las siguientes cosas en Python:

  1. Lista de todas las interfaces IP del equipo actual.
  2. Recibe sobre los cambios en las interfaces de red (sube, baja, cambia la dirección IP).

Cualquier paquete python disponible en Ubuntu Hardy va a hacer.

¿Fue útil?

Solución

Creo que la mejor manera de hacer esto es a través de dbus-python.

El tutorial toca en las interfaces de red un poco :

import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.NetworkManager',
                       '/org/freedesktop/NetworkManager/Devices/eth0')
# proxy is a dbus.proxies.ProxyObject

Otros consejos

He estado usando el siguiente código:

temp =  str(os.system("ifconfig -a | awk '$2~/^Link/{_1=$1;getline;if($2~/^addr/){print _1" "}}'"))

que dará a las interfaces de red 'Up'

por ejemplo. eth0, eth2, wlan0

No, no ... Usted no tiene que molestarse os.system () o API dbus.

Lo que realmente necesita es utilizar la API de enlace de red para implementar esto. O bien utilizar libnl interfaz (netlink.route.link) o manejar mensajes de conexión de red por sí mismo . Echar un vistazo a este ejemplo .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top