Преобразуем доменное имя в IP адрес

Previous  Top  Next

    
 

 

Автор: Lutfi Baran

 

Описывается функция, которая показывает, как вычислить IP адрес компьютера в интернете по его доменному имени.

 

Совместимость: Delphi 3.x (или выше)

 

Объявляем Winsock, для использования в функции

Code:

function HostToIP(Name: string; var Ip: string): Boolean;

var

wsdata : TWSAData;

hostName : array [0..255] of char;

hostEnt : PHostEnt;

addr : PChar;

begin

WSAStartup ($0101, wsdata);

try

   gethostname (hostName, sizeof (hostName));

   StrPCopy(hostName, Name);

   hostEnt := gethostbyname (hostName);

   if Assigned (hostEnt) then

     if Assigned (hostEnt^.h_addr_list) then begin

       addr := hostEnt^.h_addr_list^;

       if Assigned (addr) then begin

         IP := Format ('%d.%d.%d.%d', [byte (addr [0]),

         byte (addr [1]), byte (addr [2]), byte (addr [3])]);

         Result := True;

       end

       else

         Result := False;

     end

     else

       Result := False

   else begin

     Result := False;

   end;

finally

   WSACleanup;

end

end;

 

Вы можете разметстить на форме EditBox, Кнопку и Label и добавить к кнопке следующий обработчик события OnClick:

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

var

IP: string;

begin

if HostToIp(Edit1.Text, IP) then Label1.Caption := IP;

 

 

 

©Drkb::03348

Взято из http://forum.sources.ru