3
我想使用c#访问计算机的mac地址。我已经使用下面的代码来访问mac地址,但是在这个代码中存在一些问题。获取计算机的MAC地址
代码1
foreach(NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
if(nic.OperationalStatus == OperationalStatus.Up)
{
Console.WriteLine(nic.GetPhysicalAddress().ToString());
checkMAC = nic.GetPhysicalAddress().ToString();
break;
}
}
代码2
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
string MACAddress = String.Empty;
foreach (ManagementObject mo in moc)
{
if (MACAddress == String.Empty) // only return MAC Address from first card
{
if ((bool)mo["IPEnabled"] == true) MACAddress = mo["MacAddress"].ToString();
}
mo.Dispose();
}
MACAddress = MACAddress.Replace(":", "");
在当我们从网络连接断开,那么它将返回null MAC地址第一个代码。第二个代码在网络适配器连接ID断开连接时返回MAC地址但是,当我们将网络连接分开或删除计算机的IP地址时,它将返回空MAC地址。
如何获取禁用网络连接时的MAC地址,没有IP地址分配给PC或网络连接断开连接?
mac地址是我们自己的计算机地址那么网络适配器和mac地址的连接是什么 – user847455 2012-03-03 08:46:44
我加了一个解释。 – zmbq 2012-03-03 09:48:49
正确。这就是禁用界面意味着,应用程序将无法再看到它。 [文档](http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.getallnetworkinterfaces.aspx)清楚地说明了这一点。总之,这个问题所要求的是不可能的。 – 2012-03-03 10:00:12