C#获得计算机#x27;s MAC地址“;“离线”;
在c#中没有internet连接的情况下,有没有办法获取计算机的mac地址? 当我有连接时,我可以获取,但当我脱机时,我无法获取。但我强烈需要我的工作mac地址 我的在线代码C#获得计算机#x27;s MAC地址“;“离线”;,c#,mac-address,C#,Mac Address,在c#中没有internet连接的情况下,有没有办法获取计算机的mac地址? 当我有连接时,我可以获取,但当我脱机时,我无法获取。但我强烈需要我的工作mac地址 我的在线代码 var macAddr = (from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysic
var macAddr =
(from nic in NetworkInterface.GetAllNetworkInterfaces()
where nic.OperationalStatus == OperationalStatus.Up
select nic.GetPhysicalAddress().ToString()).FirstOrDefault();
您可以在C#(System.Management
)中使用WMI来获取包含MACAddress
属性的Win32\u NetworkAdapter
的列表
来自WMI:
public static string GetMACAddress1()
{
ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Select * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMOS.Get();
string macAddress = String.Empty;
foreach (ManagementObject objMO in objMOC)
{
object tempMacAddrObj = objMO["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();
}
macAddress = macAddress.Replace(":", "");
return macAddress;
}
从System.Net命名空间:
public static string GetMACAddress2()
{
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
String sMacAddress = string.Empty;
foreach (NetworkInterface adapter in nics)
{
if (sMacAddress == String.Empty)// only return MAC Address from first card
{
//IPInterfaceProperties properties = adapter.GetIPProperties(); Line is not required
sMacAddress = adapter.GetPhysicalAddress().ToString();
}
} return sMacAddress;
}
从稍作修改,您是否可以删除
其中nic.OperationalStatus==OperationalStatus.Up
行?联机时,mac地址;4CEB428D5072脱机时,mac地址为4CEB428D5073。为什么?行IPInterfaceProperties=adapter.GetIPProperties()代码>需要?@Joel不,这行代码不是必需的,因为我刚刚在我的开发设备上运行了测试。更新答案以反映我的测试。