Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

определение имени хоста по его адресу   Найти похожие ветки 

 
inex   (2007-03-28 12:46) [0]

Подскажите, пожалуйста, как можно определить имя удаленного хоста по его АйПи адресу?
Ну что-то наподобе nslookup!


 
Rouse_ ©   (2007-03-28 12:47) [1]

function GetNameFromIP(const IP: String): String;
const
 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;


 
inex   (2007-03-28 12:52) [2]

Rouse_, подскажи, пожадуйста, что нужно к этому прописать в uses?


 
Сергей М. ©   (2007-03-28 13:08) [3]


> что нужно к этому


Дай г..на, дай ложку ?)


 
inex   (2007-03-28 13:11) [4]


> Дай г..на, дай ложку

Ладно, если вы такие, тогда буду сам искать :(
Большое спасибо тебе, Rouse_, за помощь!


 
Сергей М. ©   (2007-03-28 13:15) [5]


> буду сам искать


Да уж)
Должно быть стыдно не иметь свою ложку)


 
Сергей М. ©   (2007-03-28 13:17) [6]

тем более если куча прямо перед носом - в ($DELPHI)\Source


 
Rouse_ ©   (2007-03-28 13:55) [7]


> что нужно к этому прописать в uses?

winsock вестимо :)


 
Сергей М. ©   (2007-03-28 13:59) [8]


> winsock вестимо :)


А еще и Dialogs)

А еще и ..

да мало ли ложек потребуется))

Что ж получается - на каждую кучу свою ложку требовать ?)


 
Empleado ©   (2007-03-28 16:09) [9]

WSA_TYPE он не найдет


 
Сергей М. ©   (2007-03-28 16:21) [10]


> WSA_TYPE он не найдет


Угу.

А дотумкать самому - оно сложно.


 
Rouse_ ©   (2007-03-28 16:52) [11]


> WSA_TYPE он не найдет

Это строго секретная константа, ее нельзя в открытом виде на форуме светить ;)


 
inex   (2007-03-29 12:46) [12]


> WSA_TYPE он не найдет

Вместо данного параметра я поставил 1, а мог бы е чето другое.
Или нет?


 
Rouse_ ©   (2007-03-29 13:08) [13]

$101, $202 :)


 
Сергей М. ©   (2007-03-29 13:15) [14]


> а мог бы е чето другое.
> Или нет?


Это тебя надо спросить, мог ты или не мог)
Но одно точно известно - читать справку по WSAStartup() ты уж точно не мог - то ли лень, то ли буквы незнакомые там, то ли лыжи не едут ..)


 
inex   (2007-03-29 13:22) [15]


> Но одно точно известно - читать справку по WSAStartup()
> ты уж точно не мог - то ли лень, то ли буквы незнакомые
> там, то ли лыжи не едут ..)

Нет, ответ намного проще, я просто ее не нашел!


 
Сергей М. ©   (2007-03-29 13:26) [16]


> я просто ее не нашел


Она, справка эта, у тебя перед носом - меню Help -> Windows SDK


 
inex   (2007-03-29 13:30) [17]


> Она, справка эта, у тебя перед носом - меню Help -> Windows
> SDK

Спасибо, буду знать!



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
15-1193540042
Асм
2007-10-28 05:54
2007.12.02
ассемблер


4-1179242016
Calibr
2007-05-15 19:13
2007.12.02
Реестр


2-1194353830
Azize
2007-11-06 15:57
2007.12.02
перевод из Двоичного кода


15-1193777739
Принтер
2007-10-30 23:55
2007.12.02
Бытовые струйники энд лазерные притеры


2-1194429628
Lera
2007-11-07 13:00
2007.12.02
Наименование продукта