tft每日頭條

 > 圖文

 > mips如何測試

mips如何測試

圖文 更新时间:2024-09-04 05:18:20

mips如何測試?在開發中,有時候我們需要獲取唯一标識本機的序列号,你可能會想到如下幾種,今天小編就來說說關于mips如何測試?下面更多詳細答案一起來看看吧!

mips如何測試(通過WMI獲取硬件序列号)1

mips如何測試

如何标識一台機器

在開發中,有時候我們需要獲取唯一标識本機的序列号,你可能會想到如下幾種

1) MAC地址

2) CPU ID

3) 硬盤ID

MAC地址

因為MAC地址可能會被修改,而且本機可能會有多張網卡,同時網卡的數量會随着網卡被啟用或禁用而發生變化,所以暫時就不考慮使用MAC地址作為本機硬件标識了。

CPU ID

這個看起來不錯,但是有個問題:CPU廠商有時候為了規避隐私問題,會對同一批次的CPU打上同一個ID,這樣就不能通過CPU ID唯一的标識機器了。

硬盤ID

每一塊硬盤在出廠的時候,廠商會燒錄一個唯一的ID到硬盤中,這個标識通常可以獲取到,并且可以作為機器ID,但是在比較老的硬盤上可能沒有這個ID,另外在虛拟機中,也可能是獲取不到硬盤ID的。哎,這種方法也是個問題。

綜合以上的描述,我建議使用多種方法聯合起來對機器進行标識,防止其中一個标識因無法獲取而無法最終實現硬件唯一性标識。

下面我們通過WMI的方法來獲取硬件序列号,這裡以CPU ID為例。

WMI

WMI(Windows Management Instrumentation,Windows 管理規範)是一項核心的 Windows 管理技術;用戶可以使用 WMI 管理本地和遠程計算機。

WMI初始化

在使用WMI進行WQL語句查詢之前,我們需要對WMI基礎設施進行初始化。一般包含如下幾個步驟:

1) COM庫初始化(CoInitializeEx)

2) COM庫安全機制初始化(CoInitializeSecurity)

3) 創建IWbemLocator接口實例(CoCreateInstance)

4) 連接至WMI服務(ConnectServer)

5) 設定請求代理的安全級别(CoSetProxyBlanket)

以下是具體代碼片段

使用WQL進行查詢

WMI支持WQL語句查詢,這個WQL非常類似SQL,例如,查詢CPU信息的語句如下:

SELECT * FROM win32_Processor

讀取CPU ID的步驟如下

1) 執行WQL查詢語句(ExecQuery)

此調用會創建一個IEnumWbemClassObject接口的枚舉器實例,後面會用到這個枚舉器

2) 枚舉CPU個數(Next),返回一個IWbemClassObject對象代表當前CPU

3) 調用IWbemClassObject對象的Get方法獲取具體的屬性,例如CPU ID。

4) 釋放IWbemClassObject對象

5) 當枚舉完畢,釋放IEnumWbemClassObject對象

具體代碼片段如下:

WMI釋放

當不再使用WMI組件的時候,一定要記得釋放相關的接口實例,以及COM庫,避免資源洩漏。

總結

1) WMI的好處在于統一的接口和調用方式,操作系統直接在底層提供了支持,不需要我們深入到硬件層面去了解各種不同的硬件信息。

2) 不好的地方:WMI調用,特别是初始化的時候,需要的時間比較長,這個對于性能敏感及要求快速獲取相關信息的應用來說,需要慎重考慮。

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved