Сетевое программирование в .NET. Расшифровка IP-адреса (IP address specification). Обеспечение надежности доставки пакетов, страница 9

Сетевая конфигурация индивидуальной рабочей станции или сервера должна быть известна на этапе выполнения сетевого приложения. Система Windows позволяет определить ее несколькими способами. Вы можете получить эту информацию, как вручную (с помощью утилиты), так и программно (с помощью методов класса). Системная утилита ipconfig выводит информацию о протокле IP для каждого активного сетевого интерфейса. Приведу пример запуска этой утилиты в моей системе.

D:\Documents and Settings\Administrator>ipconfig

Windows IP Configuration

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix  . :

Autoconfiguration IP Address. . . : 169.254.13.32

Subnet Mask . . . . . . . . . . . : 255.255.0.0

Default Gateway . . . . . . . . . :

Здесь утилита ipconfig обнаружила один сетевой интерфейс, который сконфигурирован для LAN, как статический IP-адрес 169.254.13.32, автоматически присвоенный моей рабочей станции. Ключ /all команды ipconfig позволяет получить более подробную информацию.

D:\Documents and Settings\Administrator>ipconfig /all

Windows IP Configuration

Host Name . . . . . . . . . . . . : alex

Primary Dns Suffix  . . . . . . . :

Node Type . . . . . . . . . . . . : Unknown

IP Routing Enabled. . . . . . . . : No

WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix  . :

Description . . . . . . . . . . . : NVIDIA nForce Networking Controller

Physical Address. . . . . . . . . : 00-11-D8-28-2C-78

DHCP Enabled. . . . . . . . . . . : Yes

Autoconfiguration Enabled . . . . : Yes

Autoconfiguration IP Address. . . : 169.254.13.32

Subnet Mask . . . . . . . . . . . : 255.255.0.0

Default Gateway . . . . . . . . . :

Здесь вы видите, что испытуемый компьютер:

¨  Не является доменом подсети,

¨  IP Route provider не запущен. Он позволяет узнать, как пакеты проходят по сети от данного узла к другому,

¨  Windows Internet Naming Service не запущен (позволяет динамически получить NetBIOS-имя для получения и регистрации IP-адреса),

¨  6-ти байтовый MAC-адрес сетевой карты равен: 00-11-D8-28-2C-78. Вы помните, что 3 байта идентифицируют производителя (00-11-D8), а остальные 3 байта—серийный номер.

¨  Dynamic Host Configuration Protocol (DHCP) запущен. Он позволяет динамически конфигурировать клиентские сетевые приложения такими параметрами, как IP-адрес, subnet mask, default gateway и другими.

¨  Autoconfiguration включена. Это позволяет автоматически получить IP-адрес даже если выключена служба DHCP. Вышеупомянутая организация Internet Assigned Numbers Authority (IANA) зарезервировала диапазон адресов от 169.254.0.0 до 169.254.255.255 для APIPA (Automatic Private IP Addressing). Адрес, полученный этой службой, гарантированно не будет конфликтовать с другими.

Достаем информацию из реестра

Реестр Windows часто называют сундуком с дргоценностями, так как от его содержимого слишком много зависит. Неосторожное обращение с этим сундуком чрезвычайно опасно. Рассмотрим, как добыть из него интересующую нас сетевую информацию. Вы знаете, что реестр—это древовидная структура данных, в которой различают пять главных ветвей:

¨  HKEY_CLASSES_ROOT,

¨  HKEY_CURRENT_USER,

¨  HKEY_LOCAL_MACHINE,

¨  HKEY_USERS,

¨  HKEY_CURRENT_CONFIG.

Главные ветви реестра часто сокращают, например. вместо HKEY_LOCAL_MACHINE пишут HKLM. Далее мы будем пользоваться этой аббревиатурой. Ветви состоят из поддеревьев (ветвей и листьев), каждый лист называют ключом. С ключом ассоциирована таблица значений (вы видите ее справа). В этой таблице 3 столбца, имеющие имена: Name, Type, Data, и произвольное количество строк. Последний столбец содержит фактические значения, ассоциированные с ключом. Эти значения и есть драгоценности, от которых зависит благополучие системы.