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