如何使用pyroute2的IPDB函数从内核获取网卡接口名称?
使用pyroute2的IPDB提取网卡接口名称
没问题,用IPDB完全可以只获取网卡的接口名称,不用依赖IPRoute()。其实IPDB的interfaces属性本身就是一个以接口名为键的字典,直接提取它的键就能得到你想要的结果。
这里给你一个简单的实现代码:
from pyroute2 import IPDB # 用with语句初始化IPDB,会自动释放连接避免资源泄漏 with IPDB() as ipdb: # 提取所有接口名称并拼接成空格分隔的字符串 interface_names = ' '.join(ipdb.interfaces.keys()) print(interface_names)
运行之后就会输出类似eth0 eth1 wlan0 lo这样的结果,完全符合你要的格式。
如果需要过滤掉回环接口lo或者其他不需要的接口,只需要加个简单的条件判断就行:
from pyroute2 import IPDB with IPDB() as ipdb: # 过滤掉lo接口,只保留物理/虚拟网卡 filtered_names = ' '.join(name for name in ipdb.interfaces.keys() if name != 'lo') print(filtered_names)
这样输出就会去掉lo,只显示你需要的网卡名称啦。
内容的提问来源于stack exchange,提问作者rishi narian
相关产品推荐
相关产品推荐

