Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Получение адресов локального узла с помощью функций API Windows.

Читайте также:
  1. A) отличие от сферы частичных функций личности;
  2. VII) Закончите предложения с помощью подходящих модальных выражений.
  3. Автоматизация процесса назначения IP-адресов узлам сети - протокол DHCP
  4. Адресованных лицам, проработавшим в тылу в период с 22 июня 1941 года по 9 мая 1945 года
  5. Адресованных участникам Великой Отечественной войны
  6. Анализ рисков с помощью дерева решений
  7. БЛИНЫ С НАЧИНКОЙ, ОМЛЕТЫ, ПАШТЕТ В КОРЗИНОЧКАХ ИЗ ТЕСТА разрезают ножом и едят с помощью вилки. Точно так же едятФАРШИРОВАННЫЕ ОВОЩИ.

Для получения информации об адресах локального узла можно использовать API-функции. Прототипы функций определены в файле Iphlpapi.h. При компоновке приложения необходимо подключать библиотеку Iphlpapi.lib. Для подключения заголовочного файла и библиотеки необходима установка Microsoft Platform SDK (Software Development Kit).

Информацию о конфигурации TCP/IP и сетевом адаптере возвращают функции GetNetworkParams и GetAdaptersInfo. Прототип функции GetAdaptersInfo:

DWORD GetAdaptersInfo (

PIP_ADAPTER_INFO pAdapterInfo,

PULONG pOutBufLen);

Параметр pAdapterInfo - указатель на буфер, куда будет помещена структура _IP_ADAPTER_INFO с информацией о конфигурации адаптера. Параметр pOutBufLen должен содержать указатель на переменную, задающую размер этого буфера. Если размер не достаточен, функция GetAdaptersInfo вернет значение ERROR_BUFFER_OVERFLOW и передаст в параметре pOutBufLen требуемый размер буфера.

Структура _ IP_ADAPTER_INFO – это, фактически список структур, содержащих информацию о настройках IP для каждого доступного на данном компьютере сетевого адаптера:

typedef struct _IP_ADAPTER_INFO {

struct _IP_ADAPTER_INFO* Next;

DWORD ComboIndex;

char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];

char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];

UINT AddressLength;

BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];

DWORD Index;

UINT Type;

UINT DhcpEnabled;

PIP_ADDR_STRING CurrentIpAddress;

IP_ADDR_STRING IpAddressList;

IP_ADDR_STRING GatewayList;

IP_ADDR_STRING DhcpServer;

BOOL HaveWins;

IP_ADDR_STRING PrimaryWinsServer;

IP_ADDR_STRING SecondaryWinsServer;

time_t LeaseObtained;

time_t LeaseExpires;

} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;

Структура содержит следующие поля:

Next – следующий адаптер в буфере. Значение NULL означает конец списка.

ComboIndex – задается равным 0.

AdapterName – название адаптера.

Description – краткое описание адаптера.

AddressLength – размер физического адреса адаптера в байтах.

Address – физический адрес адаптера.

Index – уникальный код сетевого интерфейса, присвоенный данному адаптеру.

Type – число, соответствующее типу адаптера. Например, MIB_IF_TYPE_ETHERNET – адаптер Ethernet.

DhcpEnabled – показывает, используется ли служба DHCP.

CurrentIpAddress – имеет значение NULL.

IpAddressList – список назначенных данному адаптеру IP-адресов.

GatewayList – список IP-адресов шлюза по умолчанию.

DhcpServer – IP-адрес DHCP-сервера.

HaveWins – показывает, используется ли WINS-сервер.

PrimaryWinsServer – IP-адрес основного WINS-сервера.

SecondaryWinsServer – IP-адрес дополнительного WINS-сервера.

LeaseObtained – время получения IP-адреса в аренду от DHCP-сервера.

LeaseExpires – дата окончания срока аренды IP-адреса.

Структура IP_ADDR_STRING задает начало связанного списка IP-адресов:

typedef struct _IP_ADDR_STRING {

struct _IP_ADDR_STRING* Next;

IP_ADDRESS_STRING IpAddress;

IP_MASK_STRING IpMask;

DWORD Context;

} IP_ADDR_STRING, *PIP_ADDR_STRING;

Если значение поля Next равно NULL, то это означает конец списка. Поле IpAddress – строка символов, в которой IP-адрес представлен в десятично-точечной нотации. Поле IpMask содержит маску подсети. Поле Context связывает данный IP-адрес с уникальным кодом.

 


Дата добавления: 2015-07-08; просмотров: 172 | Нарушение авторских прав


Читайте в этой же книге: МЕТОДЫ АДРЕСАЦИИ УЗЛОВ СЕТИ | Числовые-составные адреса. IP-адреса | Свойства класса Uri. |
<== предыдущая страница | следующая страница ==>
Символьные адреса. DNS-имена| Получение адресов локального узла с помощью классов .NET Framework.

mybiblioteka.su - 2015-2024 год. (0.015 сек.)