Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить текущий DNS-сервер ? [D6, Win2k]


Vovaka ©   (2003-03-25 09:39:00) 

Как получить текущий DNS-сервер ?


Polevi   (2003-03-25 11:39:00) [1]

const
MAX_HOSTNAME_LEN=128;
MAX_DOMAIN_NAME_LEN=128;
MAX_SCOPE_ID_LEN=256;

type
PIP_ADDR_STRING=^TIP_ADDR_STRING;
TIP_ADDR_STRING=record
Next:PIP_ADDR_STRING;
IpAddress:array[1..16] of char;
IpMask:array[1..16] of char;
Context:DWORD;
end;

type
TFIXED_INFO=record
HostName:array[1..MAX_HOSTNAME_LEN+4] of char;
DomainName:array[1..MAX_DOMAIN_NAME_LEN+4] of char;
CurrentDnsServer:PIP_ADDR_STRING;
DnsServerList:TIP_ADDR_STRING;
NodeType:DWORD;
ScopeID:array[1..MAX_SCOPE_ID_LEN+4] of char;
EnableRouting:DWORD;
EnableProxy:DWORD;
EnableDns:DWORD;
end;

function GetNetworkParams(fixedInfo:Pointer;pOutBufLen:PDWORD):DWORD;stdcall;external "iphlpapi.dll";


function GetDefaultDns:string;
var
buffer:Pointer;
bufSize:DWORD;
begin
bufSize:=0;
GetNetworkParams(nil,@bufSize);
GetMem(buffer,bufSize);
try
GetNetworkParams(buffer,@bufSize);
Result:=(PFIXED_INFO(Buffer).DnsServerList.IpAddress);
finally
FreeMem(Buffer);
end;
end;


Anatoly Podgoretsky   (2003-03-25 11:04:00) [2]

Vovaka (25.03.03 10:53)
Выписка из справки The Windows Sockets gethostbyaddr function


Vovaka   (2003-03-25 11:03:00) [3]

Ааа, а я в Indy смотрел... спасибо


Wonder   (2003-03-25 10:58:00) [4]

Это как? Это где? А что это:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gethostbyaddr_2.asp


Vovaka   (2003-03-25 10:53:00) [5]

Так это вроде и не функция вовсе...


Wonder   (2003-03-25 10:44:00) [6]

Ф-ция gethostbyname() тебя спасет :)


Wonder   (2003-03-25 10:44:00) [7]

Ошибка - gethostbyaddr()


Vovaka   (2003-03-25 10:41:00) [8]

Спасибо. А надо по списку IP-адресов получить текстовые имена ресурсов, сделать это можно, послав запрос к DNS-серверу, чтобы его явно не указывать, возникла необходимость его как-то получить. Вот.


Anatoly Podgoretsky   (2003-03-25 10:39:00) [9]

DNS привязаны к соединениям и их может быть много, в том числе и динамические. Совсем не обязательно, что это из настроек TCPIP или что он там указан.


Wonder   (2003-03-25 10:32:00) [10]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/fixed_info.asp


Wonder   (2003-03-25 10:26:00) [11]

Ну и узнай его в настройках :) То биш в реестре :)

Только вот зачем?


Vovaka   (2003-03-25 10:20:00) [12]

В настройках TCPIP указывается DNS-сервер, вот его имя(IP-адрес) мне и нужно узнать из дельфей.


Wonder   (2003-03-25 10:05:00) [13]

Зачем? И что значит "текущий" и "получить"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо