Python netifaces:尝试获取Linux中所有接口的IP地址

Python netifaces:尝试获取Linux中所有接口的IP地址,python,linux,ubuntu,ip-address,Python,Linux,Ubuntu,Ip Address,语言:Python3.x 操作系统:Ubuntu 14.04 如何使用Python3.X和netifaces模块或任何其他模块获取所有接口的IP地址 >>> netifaces.interfaces() ['lo', 'eth0', 'eth1'] >>> netifaces.interfaces() ['lo', 'eth0', 'eth1'] >>> netifaces.ifaddresses('eth0') {17: [{'broad

语言:Python3.x

操作系统:Ubuntu 14.04

如何使用Python3.X和netifaces模块或任何其他模块获取所有接口的IP地址

>>> netifaces.interfaces()
['lo', 'eth0', 'eth1']

>>> netifaces.interfaces()
['lo', 'eth0', 'eth1']
>>> netifaces.ifaddresses('eth0')
{17: [{'broadcast': 'ff:ff:ff:ff:ff:ff', 'addr': '08:00:27:5b:24:09'}], 2: [{'broadcast': '10.0.2.255', 'netmask': '255.255.255.0', 'addr': '10.0.2.15'}], 10: [{'netmask': 'ffff:ffff:ffff:ffff::', 'addr': 'fe80::a00:27ff:fe5b:2409%eth0'}]}
我想用

>>> len(netifaces.interfaces())
3
并希望开发一些while循环,为我的系统中的所有交互提供IP地址。但在替换
netifaces.ifaddress()
函数中的接口名称时失败

如果你需要更多信息,请告诉我

谢谢你。

你能做到

list(map(lambda i:netifaces.ifaddresses(i),netifaces.interfaces()))

你能解释一下它能做什么吗。我正在学习python。\n这是我得到的,>>>映射(lambda I:netifacces.ifaddress(I),netifacces.interfaces()),我不知道如何提取。谷歌可能会帮助meits提供所有接口的IP地址。但实际上我几乎没有什么想法。就像只提取接口的IP地址一样。我在lambda I之后给出了print I:以获得接口名。但我犯了个错误。同样的,我可以加入一个新的字符,我现在正在用列表研究拉姆达地图。现在明白了,您已经编写了一个复杂的lamda函数。你能解释一下吗。我不明白netifaces.interfaces()在这里是如何计算的,并为ifaddress()提供参数。@Raja当你使用map时,它会获取一个列表,并将给定的函数(在我们的例子中是lambda)应用到它的每个元素。。。。