亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

真的有什么方法可以唯一地識別任何計算機嗎?

真的有什么方法可以唯一地識別任何計算機嗎?

揚帆大魚 2019-12-03 14:48:24
問題是,某些已接受的答案已建議將MAC地址作為唯一的標識符,這是完全不正確的。其他一些答案建議使用似乎更合乎邏輯的各種組件的組合。但是,在使用組合的情況下,應考慮哪個組件自然不可能經常更改。幾天前,我們為軟件許可問題開發了一個密鑰生成器,其中我們使用CPUID和MAC的組合來唯一地標識Windows pc,直到實際測試,我們認為我們的方法足夠好。具有諷刺意味的是,當我們進行測試時,我們發現三臺計算機使用我們的密鑰生成器返回了相同的ID!那么,真的有什么方法可以唯一地識別任何一臺計算機嗎?現在,我們只需要使我們的密鑰生成器在Windows pc上運行即可。由于我們的系統是在.net上開發的,因此使用c#的某種方式(如果可能的話)會很棒。更新:很抱歉造成一些混亂和明顯的錯誤警報。我們在檢索硬件信息的方法中發現了一些錯誤。最初,我想刪除此問題,因為現在我自己的困惑已經消失,并且我確實相信兩個或多個組件的組合足以識別計算機。但是,后來我決定保留它,因為我認為我應該弄清楚是什么引起了該問題,因為將來同樣的事情可能會傷害其他人。這是我們正在做的(不包括其他代碼):我們正在使用一個getManagementInfo函數來檢索MAC和處理器IDprivate String getManagementInfo(String StrKey_String, String strIndex)    {        String strHwInfo = null;        try        {            ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + StrKey_String);            foreach (ManagementObject share in searcher.Get())            {                strHwInfo += share[strIndex];            }        }        catch (Exception ex)        {            // show some error message        }        return strHwInfo;    } 然后在需要的地方使用該函數檢索MAC地址string strMAC = getManagementInfo("Win32_NetworkAdapterConfiguration", "MacAddress");并檢索ProcessorIDstring strProcessorId = getManagementInfo("Win32_Processor", "ProcessorId");此時,strMAC如果存在多個MAC地址,則將包含多個MAC地址。我們只取了一個17個字符(12個MAC數字和5個冒號)。strMAC = strMAC.Length > 17 ? strMAC.Remove(17) : strMAC;這是我們犯錯的地方。因為getManagementInfo("Win32_NetworkAdapterConfiguration", "MacAddress")返回的是一些確實在使用的額外MAC地址。例如,當我們在命令提示符下逐個getmac命令搜索MAC地址時,它會為每臺PC顯示一個或兩個不同的MAC地址。但是getManagementInfo("Win32_NetworkAdapterConfiguration", "MacAddress")返回了四到五個MAC地址,其中一些地址對于所有計算機都是相同的。由于我們只是獲取了函數返回的第一個MAC地址,而不是檢查其他任何內容,因此strMAC偶然獲取了相同的MAC地址。但是,對于相同的處理器ID問題,我絕對正確。當我們wmic cpu get ProcessorId在命令提示符下輸入命令時,這三個命令都返回了相同的處理器ID 。現在我們決定使用主板序列號而不是處理器ID來與MAC地址結合使用。我認為可以通過這種方式達到我們的目的,如果在某些情況下不這樣做,那么在少數情況下我們應該放手。
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

獲得全局唯一ID的事實是,只有MAC地址才是ID,如果您全面設置系統,則該ID不會更改。如果要為特定產品生成密鑰,則最好的方法是為產品分配唯一的ID,然后將產品ID與MAC地址結合在一起。希望能幫助到你。


查看完整回答
反對 回復 2019-12-03
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我完全同意以上評論。


對于軟件許可,您可以使用:


計算機MAC地址(如果有多個NIC卡,則全部取用)+您的軟件產品代碼


大多數著名的電信供應商都在使用這種技術。


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 824 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號