2009-11-17 6 views

Répondre

13

Emprunté à MSDN, testé sur VS2008 et 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(); 
     } 
    } 
} 

sorties (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 
+0

grâce rc pour votre plus tôt répondre –

+0

utilisez BitConverter.ToString (address.GetAddressBytes()) pour enregistrer quelques lignes de code. – keza

Questions connexes