using System;using System.Collections.Generic;using System.Text;using Microsoft.Win32;namespace CardGrab...{ class Program ...{ static void Main(string[] args) ...{ RegistryKey start = Registry.LocalMachine; RegistryKey cardServiceName, networkKey; string networkcardKey = "SoftWare/Microsoft/Windows NT/CurrentVersion/NetworkCards"; string serviceKey = "System/CurrentControlSet/Services/"; string networkcardKeyName, deviceName; string 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"); Console.WriteLine(" NetWork card:{0}", deviceName); serviceName = serviceKey + deviceServiceName + "/Parameters/Tcpip"; networkKey = start.OpenSubKey(serviceName); if (networkKey == null) ...{ Console.WriteLine("No IP configuration set"); } else ...{ string[] ipaddresses = (string[])networkKey.GetValue("IPAddress"); string[] defaltGateways = (string[])networkKey.GetValue("DefaultGateway"); string[] subnetmasks = (string[])networkKey.GetValue("SubnetMask"); foreach (string ipaddress in ipaddresses) ...{ Console.WriteLine(" IP Address:{0}", ipaddress); } foreach (string subnetmask in subnetmasks) ...{ Console.WriteLine(" Subnet Mask:{0}", subnetmask); } foreach (string defaltGateway in defaltGateways) ...{ Console.WriteLine(" Getway:{0}", defaltGateway); } networkKey.Close(); } } start.Close(); Console.Read(); } }}