Solo añadir que para que el codigo anterior funcione hay que inicar winsock primero. Quedaria algo asi:
Código Delphi
[-]
function IPToHost(IP: string): string;
var
WSADATA: TWSADATA;
He: PHostEnt;
Addr: Integer;
begin
Result := IP;
if WSAStartup(MAKEWORD(1, 1), WSADATA) = 0 then
begin
Addr := inet_addr(PChar(IP));
He:= gethostbyaddr(@Addr, SizeOf(Addr), AF_INET);
if He <> nil then Result := He^.h_name;
WSACleanup();
end;
end;
Lo he probado y si le pongo la ip de mi maquina, por ejemplo, me devuelve el nombre del equipo pero si pongo la ip de google no me devuelve nada.
EDITO: Si pongo la ip 212.34.137.175 me devuelve "clubdelphi.net" asi que debe de funcionar