vmi:获取 windows 系统硬件信息

在之前开发windows应用程序时,为了实现一个注册码只能注册一台设备(只要不换机器一台电脑的设备序列号是唯一的),这时需要获取使用者电脑硬件的各种常见信息,如主板信息,cpu信息等,经过查询,模块vmi可以实现我的需求。

vim简介

WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。

安装

pip install vmi

使用

# 获取当前网卡信息

import wmi

w = wmi.WMI()
for n in w.Win32_NetworkAdapter():

    if n.MACADDress is None or n.PhysicalAdapter is False:
        continue

    mac = n.MACADDress

    name = n.Name
    if "PCI" in name:
        # 有线网卡
        print("%s: %s" % (name, mac))


# 获取当前在使用的网卡mac地址
import wmi
s = wmi.WMI()

network = []
for nw in s.Win32_NetworkAdapterConfiguration(IPEnabled=1):
    network.append(
        {
            "MAC": nw.MACAddress,
            "ip": nw.IPAddress
        }
    )

print(network)


# 获取cpu序列号
for cpu in c.Win32_Processor():
    print cpu.ProcessorId.strip()

# 获取主板序列号
for board_id in c.Win32_BaseBoard():
    # print(board_id.SerialNumber)

# 获取BIOS序列号
    for bios_id in c.Win32_BIOS():
        # print(bios_id.SerialNumber.strip)

# 获取硬盘序列号
        disk_sn_list = []
for physical_disk in c.Win32_DiskDrive():
    # print(physical_disk.SerialNumber)
    # print(physical_disk.SerialNumber.replace(" ", ""))
    disk_sn_list.append(physical_disk.SerialNumber.replace(" ", ""))
posted @ 2024-05-09 14:39  luckzack  阅读(70)  评论(0编辑  收藏  举报