python之psutil使用中获取网卡信息--解析

源代码:

import psutil
info = psutil.net_if_addrs()
info2 = psutil.net_if_stats()
print(info)    # 结果1
print("\n")
print(info2)   # 结果2

运行结果:

结果1:

{'以太网': [snicaddr(family=<AddressFamily.AF_LINK: -1>, address='80-FA-5B-5D-40-91', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET: 2>, address='169.254.16.147', netmask='255.255.0.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='fe80::4ced:34f1:f096:1093', netmask=None, broadcast=None, ptp=None)],

'WLAN': [snicaddr(family=<AddressFamily.AF_LINK: -1>, address='94-B8-6D-BD-0D-3F', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.8', netmask='255.255.255.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='2409:8a60:1e4f:acd0:e1f3:2398:b230:3c93', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='2409:8a60:1e4f:acd0:d4a0:ca:9bfa:1cd1', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='fe80::e1f3:2398:b230:3c93', netmask=None, broadcast=None, ptp=None)]}


结果2:

{'以太网': snicstats(isup=False, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=0, mtu=1500),

'WLAN': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=144, mtu=1500)}
 

………………

结果解析:

1.psutil返回值

函数 详情
psutil.net_io_counter([pernic]) 以命名元组的形式返回当前系统中每块网卡的网络io统计信息,包括收发字节数,收发包的数量、出错的情况和删包情况。当pernic为True时,则列出所有网卡的统计信息。
psutil.net_connections([kind]) 以列表的形式返回每个网络连接的详细信息(namedtuple)。命名元组包含fd, family, type, laddr, raddr, status, pid等信息。kind表示过滤的连接类型,支持的值如下:(默认为inet)
psutil.net_if_addrs() 以字典的形式返回网卡的配置信息,包括IP地址和mac地址、子网掩码和广播地址。
psutil.net_if_stats() 返回网卡的详细信息,包括是否启动、通信类型、传输速度与mtu。
psutil.users() 以命名元组的方式返回当前登陆用户的信息,包括用户名,登陆时间,终端,与主机信息
psutil.boot_time() 以时间戳的形式返回系统的启动时间

2.返回元素解析

字典的关键字:网卡的名称

snicaddr:指后面所描述地址的具体内容

family:地址类型(<AddressFamily.AF_LINK: -1>指物理地址;<AddressFamily.AF_INET: 2>指IPv4的地址;<AddressFamily.AF_INET6: 23>指IPv6的地址)

address:地址信息

netmask:网络掩码

broadcast:广播地址

ptp:指向的VPN地址

isup:指网卡的运行状态(TRUE:可操作;FALSE:已断开连接)

duplex:指通信类型( 全双工:NIC_DUPLEX_FULL,半双工:NIC_DUPLEX_HALF,不详类型:NIC_DUPLEX_UNKNOWN.)

speed:指传输速度

mtu:指传输的最大数据包大小(字节)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章