C#

[C#]레지스트리에서 IP, SubnetMask, Gateway 정보 얻기 예제

선영아 사랑해 2016. 6. 13. 10:46

using Microsoft.Win32;

public void GetNetworkInfo()
{
   string network_card_key = "SOFTWARE\\Microsoft\\Windows NT\\" + "CurrentVersion\\NetworkCards";
  
   string service_key = "SYSTEM\\CurrentControlSet\\Services\\";
     
   RegistryKey local_machine = Registry.LocalMachine;
  
   RegistryKey service_names = local_machine.OpenSubKey(network_card_key);
  
   if( service_names == null )
    return; // Invalid Registry

   string[] network_cards = service_names.GetSubKeyNames();
  
   service_names.Close();
  
   foreach( string key_name in network_cards )
   {
      string network_card_key_name = network_card_key + "\\" + key_name;
     
      RegistryKey card_service_name = local_machine.OpenSubKey(network_card_key_name);
     
      if( card_service_name == null )
       return; // Invalid Registry
     
      string device_service_name = (string) card_service_name.GetValue("ServiceName");
     
      string device_name = (string) card_service_name.GetValue("Description");
     
      Console.WriteLine("Network Card = " + device_name);
     
      string service_name = service_key + device_service_name + "\\Parameters\\Tcpip";
     
      RegistryKey network_key = local_machine.OpenSubKey(service_name);
     
      if( network_key != null )
      {
         // IPAddresses
         string[] ipaddresses = (string[]) network_key.GetValue("IPAddress");
        
         foreach( string ipaddress in ipaddresses )
         {
            MessageBox.Show("IPAddress = " + ipaddress);
         }
        
         // Subnets
         string[] subnets = (string[]) network_key.GetValue("SubnetMask");
        
         foreach( string subnet in subnets )
         {
            MessageBox.Show("SubnetMask = " + subnet);
         }
        
         //DefaultGateway
         string[] defaultgateways = (string[]) network_key.GetValue("DefaultGateway");
        
         foreach( string defaultgateway in defaultgateways )
         {
            MessageBox.Show("DefaultGateway = " + defaultgateway);
         }
        
         network_key.Close();
      } 
   }
   local_machine.Close();
}