【问题标题】:Handling Multiple Network Interfaces in Python在 Python 中处理多个网络接口
【发布时间】:2010-11-08 14:38:56
【问题描述】:

如何在 python 中做以下事情:

  1. 列出当前机器上的所有IP接口。
  2. 接收有关网络接口更改(上升、下降、更改 IP 地址)的更新。

Ubuntu Hardy 中可用的任何 python 包都可以。

【问题讨论】:

    标签: python linux networking ip


    【解决方案1】:

    不,不...您不需要打扰 os.system() 或 dbus API。

    您真正需要的是使用 netlink API 来实现这一点。要么使用libnl 接口(netlink.route.link),要么自己处理netlink 消息。看看this example

    【讨论】:

      【解决方案2】:

      我一直在使用下面的代码,

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

      它将提供“向上”网络接口

      例如eth0, eth2, wlan0

      【讨论】:

        【解决方案3】:

        我认为最好的方法是通过dbus-python

        tutorial 有点涉及网络接口:

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

        【讨论】:

          猜你喜欢
          • 2011-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-29
          • 2015-04-04
          • 1970-01-01
          相关资源
          最近更新 更多