解决方法
从
MSDN借用,在VS2008和mono 2.4.2.3(Debian 2.4.2.3 dfsg-2)上测试:
using System; using System.Net.NetworkInformation; namespace ConsoleApplication2 { class Program { public static void ShowNetworkInterfaces() { IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties(); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); Console.WriteLine("Interface information for {0}.{1} ",computerProperties.HostName,computerProperties.DomainName); if (nics == null || nics.Length < 1) { Console.WriteLine(" No network interfaces found."); return; } Console.WriteLine(" Number of interfaces .................... : {0}",nics.Length); foreach (NetworkInterface adapter in nics) { Console.WriteLine(); Console.WriteLine(adapter.Description); Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length,'=')); Console.WriteLine(" Interface type .......................... : {0}",adapter.Netwo$ Console.Write(" Physical address ........................ : "); PhysicalAddress address = adapter.GetPhysicalAddress(); byte[] bytes = address.GetAddressBytes(); for (int i = 0; i < bytes.Length; i++) { // Display the physical address in hexadecimal. Console.Write("{0}",bytes[i].ToString("X2")); // Insert a hyphen after each byte,unless we are at the end of the // address. if (i != bytes.Length - 1) { Console.Write("-"); } } Console.WriteLine(); } } static void Main(string[] args) { ShowNetworkInterfaces(); } } }
输出(linux):
Interface information for hera.(none) Number of interfaces .................... : 2 lo == Interface type .......................... : Loopback Physical address ........................ : eth0 ==== Interface type .......................... : Ethernet Physical address ........................ : 00-26-xx-xx-xx-xx