zoukankan      html  css  js  c++  java
  • arcgis python 获得硬件id

    import time
    import wmi, zlib
    def get_cpu_info():
        tmpdict = {}
        tmpdict["CpuCores"] = 0
        c = wmi.WMI()
        #          print c.Win32_Processor().['ProcessorId']
        #          print c.Win32_DiskDrive()
        for cpu in c.Win32_Processor():
            #                print cpu
           #print("cpu id:", cpu.ProcessorId.strip())
            tmpdict["CpuId"] = cpu.ProcessorId.strip()
            tmpdict["CpuType"] = cpu.Name
            try:
                tmpdict["CpuCores"] = cpu.NumberOfCores
            except:
                tmpdict["CpuCores"] += 1
                tmpdict["CpuClock"] = cpu.MaxClockSpeed
        return tmpdict
    def _read_cpu_usage():
        c = wmi.WMI()
        for cpu in c.Win32_Processor():
            return cpu.LoadPercentage
    def get_cpu_usage():
        cpustr1 = _read_cpu_usage()
        if not cpustr1:
            return 0
        time.sleep(2)
        cpustr2 = _read_cpu_usage()
        if not cpustr2:
            return 0
        cpuper = int(cpustr1) + int(cpustr2) / 2
        return cpuper
    def get_disk_info():
        tmplist = []
        encrypt_str = ""
        c = wmi.WMI()
        for cpu in c.Win32_Processor():
            # cpu 序列号
            encrypt_str = encrypt_str + cpu.ProcessorId.strip()
            print("cpu id:", cpu.ProcessorId.strip())
        for physical_disk in c.Win32_DiskDrive():
            encrypt_str = encrypt_str + physical_disk.SerialNumber.strip()
            # 硬盘序列号
            print('disk id:', physical_disk.SerialNumber.strip())
            tmpdict = {}
            tmpdict["Caption"] = physical_disk.Caption
            tmpdict["Size"] = int(physical_disk.Size) / 1000 / 1000 / 1000
            tmplist.append(tmpdict)
        for board_id in c.Win32_BaseBoard():
            # 主板序列号
            encrypt_str = encrypt_str + board_id.SerialNumber.strip()
            print("main board id:", board_id.SerialNumber.strip())
        # for mac in c.Win32_NetworkAdapter():
        # mac 地址(包括虚拟机的)
        #                    print "mac addr:", mac.MACAddress:
        for bios_id in c.Win32_BIOS():
            # bios 序列号
            encrypt_str = encrypt_str #+ bios_id.SerialNumber.strip()
            print("bios number:", bios_id.SerialNumber.strip())
        print("encrypt_str:", encrypt_str)
        # 加密算法
        print("加密算法:%d" % zlib.adler32(encrypt_str.encode()))
        return encrypt_str
    if __name__ == "__main__":
       # a = get_cpu_info()
       # print("cpu: %s" % a)
        get_disk_info()
  • 相关阅读:
    gcc/g++命令参数笔记
    周总结
    帆软FineBI试用
    C++输入流
    tt
    linux6 安装oracle11g
    linux下修改/dev/shm tmpfs文件系统大小
    centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
    Linux Network配置
    安装KornShell(KSH)
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12063487.html
Copyright © 2011-2022 走看看