Получение IP-адреса по доменному имени и наоборот
Получение IP-адреса по доменному имени и наоборот
Получение IP-адреса по доменному имени и наоборот uses winsock; ------- function IPAddrToName(IPAddr : String): String; var SockAddrIn: TSockAddrIn; HostEnt: PHostEnt; WSAData: TWSAData; begin WSAStartup($101, WSAData); SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr)); HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); if HostEnt<>nil then begin result:=StrPas(Hostent^.h_name) end else begin result:=''; end; //Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:=IPAddrToName(Edit1.Text); end; Добавлено в 6.12.03, 09:10 Преобразуем доменное имя в IP адрес. Автор: Lutfi Baran Описывается функция, которая показывает, как вычислить IP адрес компьютера в интернете по его доменному имени. Совместимость: Delphi 3.x (или выше) Объявляем Winsock, для использования в функции ............ 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: procedure TForm1.Button1Click(Sender: TObject); var IP: string; begin if HostToIp(Edit1.Text, IP) then Label1.Caption := IP; end;