Entwickler-Ecke

Delphi Tutorials - DNS-Lookup


MSCH - So 11.04.04 09:46
Titel: DNS-Lookup
Hallo Leute,
hier mal was ganz simples; wie krieg ich ein DNS Namen raus ?
Funktion liefert allerdings nur den ersten Eintrag zurück falls es mehrere gibt
Hab ich irgentwo gelesen, gebraucht und etwas umgeschrieben.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
// uses WinSock; // nicht vergessen
function GetDNSLookup(IPAddress:String):String;
var
   WSAData   : TWSAData;
   Socket       : TSockAddrIn;

begin
  result:=''// default is empty
  if WSAStartup(MAKEWORD(2,0),WSAData)=0 then begin
    Socket.sin_addr.S_addr := inet_addr(PChar(S));
    HostEnt:=gethostbyAddr(@Socket.sin_addr.S_addr,SizeOf(Socket.sin_addr.S_addr),AF_INET);
    result:=StrPas(HostEnt^.h_name);
    WSACleanup;
  end;
end;



grez
msch


Anonymous - So 11.04.04 11:42

Und so funktioniert's auch: ;)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function GetDNSLookup(IPAddress:String):String;
var
 WSAData: TWSAData;
 Socket: TSockAddrIn;
begin
 result:=''// default is empty
 if WSAStartup(MAKEWORD(2,0),WSAData)=0 then
 begin
  Socket.sin_addr.S_addr := inet_addr(PChar(IPAddress));
  result:=StrPas(gethostbyAddr(@Socket.sin_addr.S_addr,SizeOf(Socket.sin_addr.S_addr),AF_INET)^.h_name);
  WSACleanup;
 end;
end;