Python mac os的接口eth0 nothing en0列表错误

Python mac os的接口eth0 nothing en0列表错误,python,python-netifaces,Python,Python Netifaces,错误 ip=ni.ifAddressSeth0[ni.AF_INET]['addr'] ValueError:必须指定有效的接口名称 错误 ip=ni.ifAddressSen0[ni.AF_INET]['addr'] TypeError:列表索引必须是整数或片,而不是str 有人知道mac为什么会出现这样的错误吗?第一个错误意味着没有名为eth0的接口。事实上,这在Linux上是一个通用的接口名称,但在MacOS上不是 第二个错误表示您试图提取一个不存在的字段。有关于en0的信息,但它是一个数

错误

ip=ni.ifAddressSeth0[ni.AF_INET]['addr'] ValueError:必须指定有效的接口名称

错误

ip=ni.ifAddressSen0[ni.AF_INET]['addr'] TypeError:列表索引必须是整数或片,而不是str


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

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

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

ip = ni.ifaddresses("en0")[ni.AF_INET]['addr']
尽管无法断章取义地判断是否只有一个地址才是您真正想要的。您得到的数组表示许多绑定;也许你想要所有的

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

实际上,这一点的解释相当详细。

硬件端口:Wi-Fi设备:en0
ip = ni.ifaddresses("en0")[ni.AF_INET][0]['addr']
addrs = ni.ifaddresses('en0')
ips = [x['addr'] for x in addrs[ni.AF_INET]]