Beispiel 1 :
uses Winsock
function IPAddrToName(IPAddr: Ansistring): string;
var SockAddrIn:
TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr := inet_addr(PAnsiChar(IPAddr));
HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt <> nil then
Result := StrPas(Hostent^.h_name)
else
Result := '';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := IPAddrToName('8.8.8.8');
end;
Beispiel 2 :
var
WSAData: TWSAData;
function IPv4ToName(const IPv4ddn: AnsiString): String;
var
IPv4: in_addr;
HostEnt: PHostEnt;
begin
IPv4.S_addr := inet_addr(PAnsiChar(IPv4ddn));
HostEnt := gethostbyaddr(@IPv4, SizeOf(IPv4), AF_INET);
if Assigned(HostEnt) then
Result := StrPas(Hostent^.h_name)
else
Result := '';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption := IPv4ToName('8.8.8.8');
end;
initialization
WSAStartup($101, WSAData); // der RC ist hoffentlich <> 0
finalization
WSACleanup;
Keine Kommentare:
Kommentar veröffentlichen