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

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

Проблема с получением имени хоста по его адресу [D5]


PVK ©   (2001-10-16 17:38:00) 

Здравствуйте.

При попытке получить имя хоста по его адресу возвращается
ошибка WSANO_DATA: Valid name, no data record of requested type.

Фрагмент кода

uses winsock;
...
var
DestAddres:In_addr;
pHostEn:PHostEnt;
error:DWord:
HostName:string;

begin
HostName:="127.0.0.1";
DestAddress.S_addr:=inet_addr(PChar(HostName));

if DestAddress.S_addr=-1
then pHostEn := gethostbyname(PChar(HostName)) //OK
else pHostEn :=gethostbyaddr(PChar(@DestAddress),sizeOf(in_addr),AF_INET ); //Error

error := GetLastError();
end;

Подскажите в чем дело.

Заранее благодарен. (pvk21@list.ru)


Wonder   (2001-10-16 18:11:00) [1]


var
pHostEn : PHostEnt;
destAddress : in_addr;
destHost : PChar;

...

begin

...

pHostEn := gethostbyname(destHost);
if (pHostEn = nil) then begin
//видимо введен IP адрес. Проверим это:
destAddress := in_addr(inet_addr(destHost));
if destAddress.S_addr = u_long(INADDR_NONE) then
begin
//неправильное имя хоста или введен не IP адрес
Exit;
end;
//Был введен IP адрес. Попробуем узнать имя хоста
pHostEn := gethostbyaddr(@destAddress, 4, PF_INET);
if (pHostEn = nil) then
begin
//Имя хоста не разрешается
end
else
destAddress := PInAddr(pHostEn^.h_addr_list^)^;
end;
...


Наверх

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