Home

Page 235
Page 235
background image

 5

Начнем рассматривать весь этот код по частям, потому что сразу разобрать-

ся с чем-то громоздким очень трудно. В самом начале у нас выполняется

следующее:

 FixedlnfoSize);

if

 and

 then

begin

end;

 FixedlnfoSize));

Первое, что надо вызвать — функцию GetNetworkParams с двумя парамет-

рами. Эта функция возвращает информацию о сети. Но для получения этих

данных нам нужно знать их размер. Чтобы это сделать, нужно сначала

вый параметр установить равным  n i l , а второй

 это переменная, куда бу-

дет записан размер необходимой памяти для получения полной информа-

ции. Результат выполнения функции записывается в переменную Err, чтобы

потом проверить на ошибки. Если эта переменная не равна 0 и не равна
константе

 ТОЧНО

 была какая-то ошибка, и надо

вывести об этом сообщение и выйти из процедуры. Такое возможно, если
сетевая карта не настроена.

После этого выделяем память для структуры pFixedlnfo типа

куда мы будем записывать полученную информацию. Память нужно выде-

лить в том количестве, которое мы узнали из первого вызова

GetNetworkParams.

Далее снова вызывается функция GetNetworkParams, только теперь в

ве первого параметра указана структура pFixedlnfo.

В принципе, все необходимое мы получили, и оно находится в pFixedlnfo.

Так что остается только рассмотреть эту структуру:

 — имя хоста (вашего компьютера);

 IpAddress — адрес

 ЕСЛИ

сервер не ОДИН, ТО

 вызвать

 ЧТО-

бы получить доступ к следующему. В качестве результата вызова Next

к нам вернется переменная типа

 через которую и

можно получить следующий адрес DNS-сервера. В общем случае код бу-

дет выглядеть так:

while

 do

begin

 — здесь находится следующий адрес

 — получить

 адрес, если есть

end;


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.