2024-06-10 14:42:18 发布
网友
我对python编程完全不熟悉,所以请耐心等待。
有没有办法知道机器里网卡的名字,等等,eth0,lo?如果是,你怎么做?
我已经研究过了,但到目前为止我只找到了获取IP地址和MAC地址的代码,比如
import socket socket.gethostbyname(socket.gethostname())
关于这些守则的建议将非常感谢。谢谢!
我认为标准库中没有任何东西可以查询这些名称。
如果在Linux系统上需要这些名称,我将解析ifconfig的输出或/proc/net/dev的内容。看看这个blog entry类似的问题。
ifconfig
/proc/net/dev
在Linux上,您只需通过以下方式在/sys/class/net/中列出链接
os.listdir('/sys/class/net/')
不确定这是否适用于所有分发版。
我用过的一个很棒的Python库是psutil。它可以在Linux、Windows和OSX等平台上使用,并且从Python2.6到3.6都支持它。
Psutil提供net_if_addrs()函数,该函数返回一个字典,其中键是NIC名称,值是分配给NIC的每个地址的命名元组列表,其中包括地址系列、NIC地址、网络掩码、广播地址和目标地址。
一个使用net_if_addrs()的简单示例,它将打印NIC名称的Python列表:
net_if_addrs()
import psutil addrs = psutil.net_if_addrs() print(addrs.keys())
我认为标准库中没有任何东西可以查询这些名称。
如果在Linux系统上需要这些名称,我将解析
ifconfig
的输出或/proc/net/dev
的内容。看看这个blog entry类似的问题。在Linux上,您只需通过以下方式在/sys/class/net/中列出链接
不确定这是否适用于所有分发版。
我用过的一个很棒的Python库是psutil。它可以在Linux、Windows和OSX等平台上使用,并且从Python2.6到3.6都支持它。
Psutil提供net_if_addrs()函数,该函数返回一个字典,其中键是NIC名称,值是分配给NIC的每个地址的命名元组列表,其中包括地址系列、NIC地址、网络掩码、广播地址和目标地址。
一个使用
net_if_addrs()
的简单示例,它将打印NIC名称的Python列表:相关问题 更多 >
编程相关推荐