使用 ManagementObjectSearcher 获取 MAC 地址
Get MAC Address using ManagementObjectSearcher
我正在尝试用 C# 开发注册算法。我使用客户端机器的 MAC 地址来生成请求代码。该功能如下所示。但是在Windows 7,这个函数在这一行显示了一个NullRererenceException
.
mac = mo["MACAddress"].ToString();
public string GetMACAddress()
{
string mac = null;
ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration");
foreach (ManagementObject mo in mos.Get())
{
mac = mo["MACAddress"].ToString();
break;
}
return mac;
}
在 Windows 7 和 Windows 8 中,为了开发激活算法,使用 C# 获取 MAC 地址的最可靠方法是什么?
并非所有对象内容都在 MAC 地址中,因此需要检查哪一剂具有 MAC
你可以这样做
string macAddress = String.Empty;
foreach (ManagementObject mo in mos.Get())
{
object tempMacAddrObj = MO["MacAddress"];
if (tempMacAddrObj == null) //Skip objects without a MACAddress
{
continue;
}
if (macAddress == String.Empty) // only return MAC Address from first card that has a MAC Address
{
macAddress = tempMacAddrObj.ToString();
}
objMO.Dispose();
}
出于许可证激活的目的,我实际上建议对 MAC 地址使用其他内容(或附加内容),因为这很容易被欺骗。这是一个非常好的 C# 教程,介绍如何获得应该可以解决您的问题的 "hardware fingerprint":http://www.codeproject.com/Articles/28678/Generating-Unique-Key-Finger-Print-for-a-Computer
我正在尝试用 C# 开发注册算法。我使用客户端机器的 MAC 地址来生成请求代码。该功能如下所示。但是在Windows 7,这个函数在这一行显示了一个NullRererenceException
.
mac = mo["MACAddress"].ToString();
public string GetMACAddress()
{
string mac = null;
ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration");
foreach (ManagementObject mo in mos.Get())
{
mac = mo["MACAddress"].ToString();
break;
}
return mac;
}
在 Windows 7 和 Windows 8 中,为了开发激活算法,使用 C# 获取 MAC 地址的最可靠方法是什么?
并非所有对象内容都在 MAC 地址中,因此需要检查哪一剂具有 MAC
你可以这样做
string macAddress = String.Empty;
foreach (ManagementObject mo in mos.Get())
{
object tempMacAddrObj = MO["MacAddress"];
if (tempMacAddrObj == null) //Skip objects without a MACAddress
{
continue;
}
if (macAddress == String.Empty) // only return MAC Address from first card that has a MAC Address
{
macAddress = tempMacAddrObj.ToString();
}
objMO.Dispose();
}
出于许可证激活的目的,我实际上建议对 MAC 地址使用其他内容(或附加内容),因为这很容易被欺骗。这是一个非常好的 C# 教程,介绍如何获得应该可以解决您的问题的 "hardware fingerprint":http://www.codeproject.com/Articles/28678/Generating-Unique-Key-Finger-Print-for-a-Computer