You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中snicaddr与snicstats是什么?相关psutil类型定义查询

关于psutil中snicaddr和snicstats类型的说明

psutil里的snicaddr和snicstats都是内部定义的命名元组(namedtuple),不会在公开API文档里单独列出类型定义,但可以通过实例属性或源码明确它们的结构:

snicaddr 类型

psutil.net_if_addrs()返回的字典中,每个网卡对应的列表元素都是snicaddr对象,包含以下属性:

  • family:地址族(对应socket模块中的地址族常量,比如socket.AF_INET代表IPv4,socket.AF_INET6代表IPv6,socket.AF_PACKET代表链路层地址)
  • address:网卡的IP地址或链路层地址(如MAC地址)
  • netmask:子网掩码(仅IPv4/IPv6地址会有该值)
  • broadcast:广播地址(仅IPv4地址会有该值)
  • ptp:点对点地址(仅IPv6或PPP链接会有该值)

snicstats 类型

psutil.net_if_stats()返回的字典中,每个网卡对应的snicstats对象包含以下属性:

  • isup:布尔值,标记网卡是否处于启用状态
  • duplex:双工模式,取值为psutil.NIC_DUPLEX_FULL(全双工)、psutil.NIC_DUPLEX_HALF(半双工)或psutil.NIC_DUPLEX_UNKNOWN(未知)
  • speed:网卡传输速度,单位为Mbps,未知则返回0
  • mtu:最大传输单元,单位为字节

示例代码

可以通过以下代码直观查看这些对象的属性值:

import psutil
import socket

# 遍历网卡地址信息
for ifname, addr_list in psutil.net_if_addrs().items():
    print(f"=== 网卡: {ifname} ===")
    for addr in addr_list:
        print(f"地址族: {socket.AddressFamily(addr.family).name}")
        print(f"地址: {addr.address}")
        if addr.netmask:
            print(f"子网掩码: {addr.netmask}")
        if addr.broadcast:
            print(f"广播地址: {addr.broadcast}")
        if addr.ptp:
            print(f"点对点地址: {addr.ptp}")
    print()

# 遍历网卡状态信息
for ifname, stat in psutil.net_if_stats().items():
    print(f"=== 网卡: {ifname} ===")
    print(f"是否启用: {stat.isup}")
    print(f"双工模式: {stat.duplex}")
    print(f"速度: {stat.speed} Mbps")
    print(f"MTU: {stat.mtu}")
    print()

查看源码定义

如果需要确认类型的精确定义,可以直接查看psutil的平台相关源码文件:

  • snicaddr的定义通常在_pslinux.py、_pswindows.py等文件中,形式类似:
    from collections import namedtuple
    snicaddr = namedtuple('snicaddr', ['family', 'address', 'netmask', 'broadcast', 'ptp'])
    
  • snicstats的定义形式类似:
    snicstats = namedtuple('snicstats', ['isup', 'duplex', 'speed', 'mtu'])
    

内容的提问来源于stack exchange,提问作者gastonceron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:10:47