Mega Code Archive

 
Categories / C# Tutorial / Windows
 

Get subnet mask from network key stored in Registry

using System; using Microsoft.Win32; class MainClass {     public static void Main()     {       RegistryKey start = Registry.LocalMachine;       RegistryKey cardServiceName, networkKey;       string networkcardKey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards";       string serviceKey = "SYSTEM\\CurrentControlSet\\Services\\";       string networkcardKeyName, deviceName, deviceServiceName, serviceName;            RegistryKey serviceNames = start.OpenSubKey(networkcardKey);       if (serviceNames == null)       {           Console.WriteLine("Bad registry key");           return;       }            string[] networkCards = serviceNames.GetSubKeyNames();       serviceNames.Close();            foreach(string keyName in networkCards)       {           networkcardKeyName = networkcardKey + "\\" + keyName;           cardServiceName = start.OpenSubKey(networkcardKeyName);           if (cardServiceName == null)           {             Console.WriteLine("Bad registry key: {0}", networkcardKeyName);             return;           }           deviceServiceName = (string)cardServiceName.GetValue("ServiceName");           deviceName = (string)cardServiceName.GetValue("Description");           serviceName = serviceKey + deviceServiceName + "\\Parameters\\Tcpip";           networkKey = start.OpenSubKey(serviceName);           if (networkKey == null)           {             Console.WriteLine("    No IP configuration set");             return;           }           string[] subnetmasks = (string[])networkKey.GetValue("SubnetMask");           foreach(string subnetmask in subnetmasks)           {               Console.WriteLine("    Subnet Mask: {0}", subnetmask);           }           networkKey.Close();       }       start.Close();     } } Subnet Mask: 0.0.0.0 Subnet Mask: 0.0.0.0