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:指傳輸的最大數據包大小(字節)

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