接口eth0 nothing en0 list错误(对于mac os)

2024-05-15 14:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

import netifaces as ni
ip = ni.ifaddresses("eth0")[ni.AF_INET]['addr']

错误

ip = ni.ifaddresses("eth0")[ni.AF_INET]['addr'] ValueError: You must specify a valid interface name.

^{pr2}$

错误

ip = ni.ifaddresses("en0")[ni.AF_INET]['addr'] TypeError: list indices must be integers or slices, not str

有人知道mac为什么会给出这样的错误吗?在


Tags: importipyouas错误addrafinet
1条回答
网友
1楼 · 发布于 2024-05-15 14:47:35

第一个错误意味着没有名为eth0的接口。实际上,这是Linux上的一个通用接口名,但在MacOS上不是。在

第二个错误意味着您试图提取一个不存在的字段。有关于en0的信息,但它是一个数组,而不是dict。这就像说"hello"["addr"],无法访问序列的"addr":th元素。你显然是说

ip = ni.ifaddresses("en0")[ni.AF_INET][0]['addr']

尽管没有办法脱离上下文来判断只得到一个地址是否真的是你想要的。您得到的数组代表许多绑定;也许您想要所有这些绑定?在

^{pr2}$

^{} documentation实际上非常详细地解释了这一点。在

相关问题 更多 >