我們使用下面的代碼來檢索Windows PC的活動MAC地址。如何檢測原始MAC地址被欺騙後?
private static string macId()
{
return identifier("Win32_NetworkAdapterConfiguration", "MACAddress", "IPEnabled");
}
private static string identifier(string wmiClass, string wmiProperty, string wmiMustBeTrue)
{
string result = "";
System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
if (mo[wmiMustBeTrue].ToString() == "True")
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
}
return result;
}
//Return a hardware identifier
private static string identifier(string wmiClass, string wmiProperty)
{
string result = "";
System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
return result;
}
它工作正常,檢索MAC地址。問題是當MAC地址被欺騙時,它返回僞造的MAC地址。我們想以某種方式檢索出廠時唯一和分配的原始MAC地址。有沒有辦法做到這一點?
欺騙MAC的全部意義在於,使計算機(和軟件就此)相信這是正確的MAC。 – Joe 2012-03-03 12:53:45
@Joe,是的。我原來的問題是「是否真的有辦法唯一識別任何計算機」?我得到了一些建議,可以將MAC地址用作唯一標識符。這導致了這個問題。 – 2012-03-03 13:17:56
這裏有一些其他的想法:http://stackoverflow.com/questions/671876/whats-a-good-way-to-uniquely-identify-a-computer – Joe 2012-03-03 14:05:40