IP Config собственными руками

Xakep, номер #045, стр. 045-060-2


После этого я выделяю память для структуры pFixedInfo типа PFIXED_INFO, куда мы будем записывать инфу. Память нужно выделить в том количестве, которое мы получили после вызова GetNetworkParams.

Далее я снова вызываю GetNetworkParams, только теперь в качестве первого параметра я указываю структуру, куда будет записана вся необходимая инфа.

Вся инфа, как на ладони

В принципе, все необходимое мы получили, и оно находится в структуре pFixedInfo. Так что остается только рассмотреть ее:

1. pFixedInfo.HostName - имя хоста (твоего компа);

2. pFixedInfo.DnsServerList.IpAddress - адрес DNS сервера. Если такой сервер не один, то нужно вызвать pFixedInfo.DnsServerList.Next, чтобы получить доступ к следующему. В качестве результата после вызова Next нам вернется переменная типа PIP_ADDR_STRING, через которую и можно получить следующий адрес DNS сервера. В общем случае код будет выглядеть так:

pAddrStr:=pFixedInfo.DnsServerList.Next;

while (pAddrStr<>nil) do

begin

pAddrStr.IpAddress.S - здесь находится следующий адрес

pAddrStr:=pAddrStr.Next - получить еще адрес, если есть

end;

3. pFixedInfo.NodeType - тип узла. Здесь хранится целое число. Если оно равно 1, то значит тип узла "Broadcast", 2 - "Peer to peer", 4 - "Mixed", 8 - "Hybrid".

4. pFixedInfo.ScopeId - идентификатор NetBIOS (NetBIOS Scope ID).

5. pFixedInfo.EnableRouting - включена ли маршрутизация IP. Если здесь true, то маршрутизацию включена, иначе отключена.

6. pFixedInfo.EnableProxy - включен ли WINS проксик. Если здесь true, то проксик включен, иначе отключен.

Вот и все. Достаточно только вызвать одну процедуру, и ты уже знаешь так много интересного о компе, с которого запущена твоя прога.

Disconnect

Вызов функции GetIPInfo можно также засунуть и по событию OnShow для главной формы, чтобы информация обновлялась и при старте программы. В этом случае, сразу после запуска, вся необходимая инфа уже будет находиться на своем месте.

На этом я спешу распрощаться до следующего номера ][, где мы разберемся, как заполнить вторую страничку нашей проги. В ней будет показано, как получить текущий IP адрес твоей машины, маску сети, адреса различных серверов (DHCP, WINS) и многое другое. Тебе нужно всего лишь подождать один месяц или где-то 30 дней.

Ну вот и все. Удачи!!!

P.S.У меня к тебе просьба, на сто баксов :). Не пиши мне большие письма. После появления рубрики "Кодинг" меня каждый день валят вопросами. Я не в состоянии всем рассказывать то, о чем пишут книги. Я могу что-то подсказать, где-то помочь, но не больше. А просьбы типа помоги написать прогу вообще нереальны. Я отвечаю только на те вопросы, где ответ займет несколько строчек. Целые лекции по мылу я разводить не могу. Я бы с удовольствием помог всем, но это НЕВОЗМОЖНО. Вас слишком много, а я один :(((. Поэтому лучше разбей свой вопрос на несколько маленьких и спрашивай постепенно, а не все сразу.

Назад на стр. 045-060-1  Содержание  Вперед на стр. 045-060-3