this slowpoke moves

Get Host from IP

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

Beliebte Posts

Translate