簡體   English   中英

從UUID中提取MAC地址

[英]Extracting MAC addresses from UUIDs

我工作的程序假定由Windows RPC API調用UuidCreateSequential()生成的UUID包含主以太網適配器的MAC地址。 這個假設是正確的還是我應該使用不同的方法來獲取MAC地址?

我不會依賴於此 - UuidCreateSequential擁有MAC地址的唯一原因是它試圖保證UUID在整個網絡中是唯一的。 另外,為什么你會用這種奇怪的方式來獲取MAC地址? 使用WMI並實際請求MAC地址而不是UUID創建功能的副作用。

這似乎是一個有效的假設。 MSDN上的文檔明確說明這將包含計算機上以太網卡的地址。 它沒有提到有關多卡情況的任何內容,但選擇主卡似乎是一個邏輯上的飛躍。

如果您正在編寫托管代碼,我將使用NetworkInterface類並調用GetAllNetworkInterfaces() 或者從C ++代碼中調用GetAdaptersInfo ,這是托管實現使用的。

即使UuidCreateSequential工作,它也是一種非常模糊的方式來獲取信息,並隱藏了具有多個適配器的計算機等潛在問題。

只有版本1 UUID包含MAC地址,並且僅當原始生成器可以訪問MAC地址時才開始。 如果原始生成器無法訪問MAC地址,則根據RFC 4122的4.5節,它將使用來自加密安全隨機數生成器的6個隨機字節。因此,無法保證MAC地址在UUID中給出的實際上是MAC地址。

在大多數情況下,任何人需要從UUID解析MAC地址的唯一原因是用於取證目的。 例如,參見Melissa病毒的Word文檔有效負載中嵌入的UUID。 調查員從這些ID中提取MAC地址,並將其與嫌疑人主網絡適配器的MAC地址相匹配。

如果您正在嘗試獲取自己計算機的MAC地址,那么有更好的方法可以解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM