foreach (string name in key.GetValueNames())
{
object o = key.GetValue(name);
if (o.GetType() == typeof(string))
{
string val = o.ToString();
if (val != "")
Console.WriteLine("{0,-30}:\t {1}", name, val);
}
}
key.Close();
}
}
Registry.LocalMachine.Close();
Console.WriteLine("\n\n");
}
В моей системе эта программа производит такой вывод:
DhcpServer : 255.255.255.255
IPAutoconfigurationAddress : 169.254.13.32
IPAutoconfigurationMask : 255.255.0.0
DhcpIPAddress : 169.254.13.32
DhcpSubnetMask : 255.255.0.0
Если вы используете несколько отдельных сетевых карт, то можно опробовать следующий фрагмент кода.
public static void Main()
{
Console.WriteLine("\tNetwork Info\n");
string cards = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards";
RegistryKey cardKey = Registry.LocalMachine.OpenSubKey (cards);
if (cardKey == null)
{
Console.WriteLine("Bad registry key"); return;
}
foreach (string name in cardKey.GetSubKeyNames())
{
RegistryKey serviceKey = Registry.LocalMachine.OpenSubKey (cards + "\\" + name);
if (serviceKey != null)
{
Console.WriteLine("Network card: {0}", serviceKey.GetValue("Description"));
string serviceName = "SYSTEM\\CurrentControlSet\\Services\\" +
serviceKey.GetValue("ServiceName").ToString() + "\\Parameters\\Tcpip";
RegistryKey key = Registry.LocalMachine.OpenSubKey (serviceName);
if (key == null)
Console.WriteLine("No IP configuration set");
else
{
foreach (string addr in (string[])key.GetValue("IPAddress"))
Console.WriteLine("IP Address : {0}", addr);
foreach (string mask in (string[])key.GetValue("SubnetMask"))
Console.WriteLine("Subnet Mask : {0}", mask);
foreach (string gate in (string[])key.GetValue("DefaultGateway"))
Console.WriteLine("Gateway : {0}", gate);
key.Close();
}
}
serviceKey.Close();
}
Registry.LocalMachine.Close();
Console.WriteLine("\n\n");
}
Сетевую информацию также можно получить из поддерживаемой операционной системой Windows специальной инфраструктуры, или проще, базы данных WMI (Windows Management Instrumentation). Она реализует одну из инициатив Microsoft (попытку разработать и ввести общий стандарт) под именем WBEM (Web-Based Enterprise Management). Эта инициатива направлена на унификацию методов получения информации о программах и аппаратуре, которые не должны зависеть от ее типа и производителя.
Инициатива WBEM, в свою очередь, основана на схеме, называемой Common Information Model (CIM), которая представляет собой промышленный стандарт, разработанный организацией DMTF (Distributed Management Task Force). В разработке WBEM, впервые предложенной в 1996, участвовали такие компании, как: Cisco Systems, Intel Compaq Computer и BMC Software. Спецификация CIM описывает некий язык моделирования, способы обозначения и преобразования информации, используемые при сборе и передаче данных, полученных из источников различной природы. Интересующая нас информация содержится в таблице NetworkAdapterConfiguration базы данных WMI. Запрос к этой таблице возвращает коллекцию данных об одном из сетевых интерфейсов. Следующая таблица перечисляет поля таблицы NetworkAdapterConfiguration.
Field |
Description |
DefaultIPGateway |
Массив IP-адресов маршрутизаторов, присвоенных данному устройству |
Description |
Имя, или описание устройства |
DHCPEnabled |
Флаг динамического способа присвоения IP-адреса |
DHCPServer |
Имя DHCP-сервера, который присвоил IP-адрес |
DNSHostName |
Доменное имя (DNS) хост-компьютера, который распознает имена |
IPAddress |
Массив IP-адресов, присвоенных данному устройству |
IPEnabled |
Использует-ли устройство сетевой IP-адрес |
IPSubnet |
Массив IP subnet адресов, используемых данным устройством |
MACAddress |
Ethernet MAC-адрес, присвоенный данному устройству |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.