2012-04-20 48 views
1

我有这个C#功能,但工作正常,但不幸mono不支持System.Net.NetworkInformation.NetworkInterface Type for Mac平台。C#使用Mono获取MAC地址(适用于Mac平台)

System.Net.NetworkInformation.NetworkInterfaceType Type = 0; 

string MacAddress = ModSupBase.EMPTY_STRING; 

try 
{ 
    System.Net.NetworkInformation.NetworkInterface[] theNetworkInterfaces = 
     System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(); 

    foreach (System.Net.NetworkInformation.NetworkInterface currentInterface in theNetworkInterfaces) 
    { 
     Type = currentInterface.NetworkInterfaceType; 

     if (Type == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet 
      || Type == System.Net.NetworkInformation.NetworkInterfaceType.GigabitEthernet 
      || Type == System.Net.NetworkInformation.NetworkInterfaceType.FastEthernetFx) 
     { 
      MacAddress = currentInterface.GetPhysicalAddress().ToString(); 

      break; 
     } 
    } 

    return MacAddress; 

} 
catch (System.Exception ex) 
{ 
    ModErrorHandle.Error_Handler(ex); 

    return ModSupBase.EMPTY_STRING; 
} 

我已阅读使用单迁移实用程序(我认为这是真的)

有anoher方式与MAC平台单拿到MAC addrees这一信息?

谢谢!


我不知道是不是工作。我只下载了单迁移实用程序的最新版本,并在报告中我看到:

的NetworkInterface [] NetworkInterface.GetAllNetworkInterfaces()仅适用于Linux和Windows

我不已知如果这是真的。你认为这是一个误报吗?

+0

也许这是有帮助的http://stackoverflow.com/questions/1746840/get-mac-address-in-linux-using-mono – kenny 2012-04-21 12:40:05

回答

0

您指的是哪个版本的Mono?望着Mono的后备箱source code我很确定它现在已经实施。

+1

我不知道如果工作不是。我只下载了单声道迁移实用程序的最新版本,并在报告中看到:NetworkInterface [] NetworkInterface.GetAllNetworkInterfaces()\t仅适用于Linux和Windows – user1320370 2012-04-21 13:38:25

+0

@ user1320370:我猜测迁移实用程序不是针对最新的版本,只是试图在Mac上运行它。 – 2012-04-24 18:04:02