2016-03-03 116 views
-1

我正在尋找設備的唯一標識符,即PC。我看了很多鏈接堆棧溢出和其他網站,發現生成UUID而不是mac id。但我也發現UUID可能不會與某些主板關聯,有時可能無法工作。PC的唯一標識符

我已經實現了MAC ID作爲唯一標識符,但現在我認爲這可能無法正確工作,因爲用戶的筆記本電腦可能有時連接到局域網,wifi或加密狗。每次我需要知道機器的唯一標識符。此外,當用戶使用Virtual Box連接時,我需要唯一標識符。

+0

這聽起來像是一個硬件問題,而不是編程問題 –

+0

你是什麼意思的「UUID可能不與某些主板關聯」?如果您正在討論在這些PC上運行的軟件,您可以生成一個標識符,將其存儲在一個文件中,並且每次都使用該標識符。 – f1sh

+0

非常感謝您的快速回復。 當我在機器上生成唯一的ID並將其存儲。然後它可以在任何其他機器上使用,如果該文件傳輸到該機器 –

回答

1

如果您使用其中一個或另一個,接口不會被刪除。只需循環NetworkInterface.getNetworkInterfaces()並檢查是否有與您註冊的相同的MAC。

問題可能在於,如果您使用的接口未集成到計算機中。說一個可以移除的加密狗。也許保存所有MAC地址,並檢查它們是否存在。雖然那麼你可以將一個加密狗移動到另一臺電腦上,並且仍然可以得到一個。

如果你想真正由Windows識別您的uuid可以使用cmd命令:

wmic csproduct get UUID 

在java中使用的Runtime.exec( 「WMIC csproduct獲得UUID」);然後用Process的輸出流讀取輸出並存儲它。我沒有測試過它,但它應該工作。

+0

感謝您的答案casper.I實施您的解決方案,它工作很好。只是想確認如果我在PC上安裝了虛擬盒子,或者我使用的是其他操作系統而不是Windows,它將以相同的獨特方式工作。 –

+0

如果您使用其他操作系統,它將無法工作!或者如果你使用虛擬機!它綁定到您的計算機上安裝的窗口。 –

+0

這就是推測你使用的命令方式。網絡MAC ID很好 –