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

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

Получить имя компьютера в интернете по его IP


Breeze1 ©   (2004-04-22 14:42:00) 

Мне нужно программно получить по IP адресу имя компьютера которое зарегистрировано в DNS. Как мне это сделать?


Breeze1   (2004-04-23 09:49:00) [1]

А разве в FAQ этот вопрос освещен? Может я плохо искал? Тогда ткните носом.


Piter   (2004-04-22 16:52:00) [2]

а как же FAQ...


Rouse_   (2004-04-22 15:20:00) [3]

Что-то вроде такого

// Функция возвращает имя хоста по его IP адресу
function GetNameFromIP(const IP: String): String;
const
 RES_UNKNOWN   = 'Unknown';
 WSA_TYPE = $101;
 ERR_INADDR    = 'Can not convert IP to in_addr.';
 ERR_HOST      = 'Can not get host information.';
 ERR_WSA       = 'Can not initialize WSA.';
var
 WSA   : TWSAData;
 Host  : PHostEnt;
 Addr  : u_long;
 Err   : Integer;
begin
 Result := RES_UNKNOWN;
 Err := WSAStartup(WSA_TYPE, WSA);
 if Err <> 0 then
 begin
   {$IFNDEF NO_MESSAGE}
     MessageDlg(ERR_WSA, mtError, [mbOK], 0);
   {$ENDIF}
   Exit;
 end;
 try
   Addr := inet_addr(PChar(IP));
   if Addr = u_long(INADDR_NONE) then
   begin
     {$IFNDEF NO_MESSAGE}
       MessageDlg(ERR_INADDR, mtError, [mbOK], 0);
     {$ENDIF}
     Exit;
   end;
   Host := gethostbyaddr(@Addr, SizeOf(Addr), PF_INET);
   if Assigned(Host) then
     Result := Host.h_name
   {$IFNDEF NO_MESSAGE}
     else
       MessageDlg(ERR_HOST, mtError, [mbOK], 0)
   {$ENDIF}
   ;
 finally
   WSACleanup;
 end;
end;


Наверх

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