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;