0
我正在嘗試從計算機檢索板載以太網適配器的MAC地址,以便爲設備生成唯一標識符。以下是我正在使用的方法。如何檢索計算機的板載以太網MAC地址?
NetworkInterface[] ifConfig = NetworkInterface.GetAllNetworkInterfaces();
int maxHash = int.MinValue;
Guid D = Guid.Empty;
foreach (NetworkInterface net in ifConfig)
{
if (net.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
if (maxHash < net.GetPhysicalAddress().ToString().GetHashCode())
{
maxHash = net.GetPhysicalAddress().ToString().GetHashCode();
ID = new Guid(String.Concat("00000000-0000-0000-0000-", net.GetPhysicalAddress().ToString()));
}
}
}
然而,藍牙適配器,適配器虛擬機和其他幾個網絡適配器也是NetworkInterfaceType.Ethernet
類型。我怎樣才能獲得板載以太網連接的MAC地址?
做一個包含忽略這些是不可能的。任何幫助將非常感激。
這是一個壞主意。主要是因爲MAC地址不是唯一的。如果考慮(克隆)虛擬機,情況會變得更糟。請參閱https://superuser.com/a/968346 –
@SteffenWinkler,它仍然是事實上的行業標準方法,正如FlexLM所使用的那樣。有什麼選擇? –
@HarryJohnston正如我所說的你可以生成一個Guid並使用它。你可以做客戶,因爲在現實中碰撞的機會是不存在的。你不能使用任何硬件來識別計算機。其中一個原因是虛擬機,另一個是對計算機的修改,如交換網卡或添加GPU。更改(缺陷)硬件將改變該計算機的ID。 –