python獲取計算機硬件信息


import wmi
        
############ 1. 獲取硬件信息,輸出 macode
#   1.CPU序列號(ID) 2.本地連接 無線局域網 以太網的MAC 3.硬盤序列號(唯一) 4.主板序列號(唯一)

    global s
    s = wmi.WMI()
#cpu 序列號
    def get_CPU_info(self):
        cpu = []
        cp = s.Win32_Processor()
        for u in cp:
            cpu.append(
                {
                    "Name": u.Name,
                    "Serial Number": u.ProcessorId,
                    "CoreNum": u.NumberOfCores
                }
            )
     #   print(":::CPU info:", json.dumps(cpu))
        return cpu
#硬盤序列號  
    def get_disk_info(self):
        disk = []
        for pd in s.Win32_DiskDrive():
            disk.append(
                { 
                    "Serial": s.Win32_PhysicalMedia()[0].SerialNumber.lstrip().rstrip(), # 獲取硬盤序列號,調用另外一個win32 API
                    "ID": pd.deviceid,
                    "Caption": pd.Caption,
                    "size": str(int(float(pd.Size)/1024/1024/1024))+"G"
                }
            )
     #   print(":::Disk info:", json.dumps(disk))
        return disk
#mac 地址(包括虛擬機的)
    def get_network_info(self):
        network = []
        for nw in s.Win32_NetworkAdapterConfiguration ():  # IPEnabled=0
            if nw.MACAddress != None:
                network.append(
                    {
                        "MAC": nw.MACAddress,  # 無線局域網適配器 WLAN 物理地址
                        "ip": nw.IPAddress
                    }
                )
    #    print(":::Network info:", json.dumps(network))
        return network
#主板序列號
    def get_mainboard_info(self):
        mainboard=[]
        for board_id in s.Win32_BaseBoard ():
            mainboard.append(board_id.SerialNumber.strip().strip('.'))
        return mainboard    
    
    #  由於機器碼太長,故選取機器碼字符串部分字符   
#  E0:DB:55:B5:9C:16BFEBFBFF00040651W3P0VKEL6W8T1Z1.CN762063BN00A8
#  1 61 k 8Z   
#     machinecode_str = ""
#     machinecode_str = machinecode_str+a[0]['MAC']+b[0]['Serial Number']+c[0]['Serial']+d[0]
    def getCombinNumber(self):
        a=self.get_network_info()
        b=self.get_CPU_info()
        c=self.get_disk_info()
        d=self.get_mainboard_info()
        machinecode_str = ""
        machinecode_str = machinecode_str+a[0]['MAC']+b[0]['Serial Number']+c[0]['Serial']+d[0]
        selectindex=[15,30,32,38,43,46]
        macode=""
        for i in selectindex:
            macode=macode+machinecode_str[i]
     ###   print(macode)
        return macode


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM