lundi 21 novembre 2011

Gestion des cartes réseau avec .Net

Il est possible d'obtenir des informations sur les cartes réseau avec .Net en utilisant des classes du namespace System.Net.NetworkInformation. Le code ci-dessous permet de lister toutes les cartes et leurs états

foreach (NetworkInterface carte in NetworkInterface.GetAllNetworkInterfaces())
                {
                    Console.WriteLine("Nom : " + carte.Name);
                    Console.WriteLine("Etat : " + carte.OperationalStatus.ToString());
                }

Il est aussi possible de désactiver ou d'activer des cartes réseau en passant par WMI. La méthode ci-dessous permet de désactiver une carte dont le nom est donné en paramètre (vous devez référencer la DLL System.Management)



void Désactiver_Carte(String carte)
{
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID = '" + carte + "'");
    foreach (ManagementObject queryObj in searcher.Get()) if (queryObj["NetEnabled"].ToString() == "True") 
   { 
      ManagementObject classInstance = new ManagementObject("root\\CIMV2", "Win32_NetworkAdapter.DeviceID = '" + queryObj["DeviceID"] + "'", null); 
      ManagementBaseObject outParams = classInstance.InvokeMethod("Disable", null, null);
   }
}

1 commentaire: