简短版本:
是否有一个库可以解析Unix命令的输出:
ip address
如果回答是否定的,你知道我可以使用哪些Python网络库来加速解析器开发吗?
详细说明:
我正在尝试构建一个开源抽象层,用于从具有不同协议(SSH、SNMP、HTTP)的网络设备中检索信息,以在无线社区网络中使用。我从SSH(此处为原型)开始,并最初找到了一个“ifconfig”命令的解析器,但解析器没有考虑到许多情况,而且我的网络朋友告诉我“ifconfig”已被弃用,“iproute2”是未来。
因此,在开始开发自己的解析器之前,我询问是否有人知道是否有任何开源Python解析器可用于“ip address”Unix命令的输出。 我只需要检索接口列表,每个接口都是字典或对象,其中包含命令输出中包含的所有详细信息(名称、类型、IP、MAC、MTU、ECC)。
我找到的唯一资料是这个未经记录和未完成的github仓库: https://github.com/nwhalen/python-iproute2
/proc/net
获取信息 - 这就是ifconfig
或ip
命令获取大部分信息的地方。 - Lukas Grafnetifaces
模块。 - Lukas Grafip address
或ifconfig
的输出可能是您使用 SSH 后端的最佳选择。pyparsing
模块可以帮助解析该输出。我猜正则表达式也可以工作,但很快就会变得难以阅读。 - Lukas Grafip
命令的-o
选项(单行输出)可能会给您更容易解析的输出。很抱歉把所有这些都放在注释中,但我目前没有时间编写一个可移植、涵盖大多数情况并经过测试的体面答案。 - Lukas Graf