如何使用pyroute2 ipdb函数从内核中获取接口名称



我想使用pyroute2和ipdb函数中获取内核中存在的接口名称(例如ETH0..ETC(。

import pyroute2
ipdb=pyroute2.IPDB()
   print ipdb.interfaces

上面的代码正在显示完整信息。但是我只需要接口名称。

所需的输出为:

eth0ETH1...

我不想使用iproute((函数来获取。我想使用IPDB获取信息。

使用下面的摘要有另一种方法来获取接口名称。

with pyroute2.IPDB() as ipdb:
        print(" ".join(ipdb.by_name.keys()))
import pyroute2
ipr = pyroute2.IPRoute()
for link in ipr.get_links():
    print(link.get_attr('IFLA_IFNAME'))

这似乎可以解决问题:

import pyroute2    
ipdb = pyroute2.IPDB()
print [ ipdb.interfaces[x].ifname for x in range(1, len(ipdb.interfaces)/2 + 1) ]

我不喜欢pyroute2实现大多数事情的方式,但是不幸的是,我在python上太新了,无法以我想要的方式更改该模块。

在此处看看:

您将能够内省您的本地网络资源。这就是我在大型系统上使用的

https://pypi.python.org/pypi/netifaces

最新更新