Home » Tipps & Tricks » Netzwerk/Internet » Netzwerk » IP-Adresse eines Hosts ermitteln

IP-Adresse eines Hosts ermitteln

Folgende Procedure ermittelt die IP-Adressen eines Hosts. Dies kann z.B. ein Copmutername oder ein Domain-Name sein.Kern der Funktion ist der Aufruf von „getHostByName“, die in der „Platform SDK: Windows Sockets 2“ dokumentiert ist. Dort finden sich auch relevante Fehlercodes, die die Funktion in Falle eines Fehlers zurückgibt.

uses
  WinSock;

function GetIpAddressByName(const Lines:TStrings; const AHost: String): Boolean;
type
  PPInAddr= ^PInAddr;
var
  WSA: TWSAData;
  HostInfo: PHostEnt;
  Addr: PPInAddr;
begin
  Result:=False;
  if WSAStartUp($101, WSA) = 0 then
  begin
    try
      HostInfo:= getHostByName(PChar(AHost));
      Result:=HostInfonil;
      if Result then
      begin
        Addr:=Pointer(HostInfo^.h_addr_list);
        if (Addrnil) AND (Addr^nil) then
        begin
          Repeat
            Lines.Add(StrPas(inet_ntoa(Addr^^)) ) ;
            inc(Addr);
          Until Addr^=nil;
        end;
      end;
    finally
     WSACleanup;
    end;
  end;
end;

Die Funktion gibt True zurück, falls der Aufruf von getHostByName erfolgreich war:

procedure TForm1.Button1Click(Sender: TObject);
begin
 if GetIpAddressByName(Listbox1.Items, 'www.google.de') then
   Showmessage('OK')
 else
   ShowMessage('Fehler');
end;