Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Consultas al DNS con idDNSResolve (https://www.clubdelphi.com/foros/showthread.php?t=73804)

fide_uci 17-05-2011 22:46:13

Consultas al DNS con idDNSResolve
 
Hola amigos. Saludos a todos los que han leido el post.

Mi problema es el siguiente. Necesito hacer consultas al DNS con idDNSResolve. Tengo Indy 10 y Delphi 7. En la aplicacion que estoy desarrollando tengo varias IP y necesito obtener los nombres correspondientes a dichas IP's. Alguien sabe como hacer esto con el componente idDNSResolve de la Indy?.

Gracias desde ya para todos.

Ñuño Martínez 18-05-2011 10:39:25

Si tienes la IP no necesitas resolver nada, y menos por DNS; DNS son las siglas de Domain Name Resolver, es decir, que toma un nombre de dominio y devuelve la dirección IP. El proceso contrario no se puede hacer, o al menos no te dará un valor fiable, ya que una IP puede responder a varios nombres de dominio. Por ejemplo, mi página web (www.burdjia.com) tiene la misma IP que ClubDelphi, ya que ambas están en el mismo servidor.

Al menos que me esté perdiendo algún capítulo...

fide_uci 18-05-2011 14:14:55

Sisi entiendo a lo que te refieres, pero ten en cuenta que esto si se puede hacer creo yo dado que cuando haces un Lookup de un IP puede que te devuelvan un hostname o varios, los cuales tendrias que recorrer tu para ver todos los dominios asociados. De todas formas me voy a documentar un poco mas en este tema y luego te comento que tal.

fide_uci 18-05-2011 14:22:36

Mira por ejemplo esta es una funcion que dado el IP te devuelve el nombre pero es usando Winsock y me imagino que automaticamente utiliza el DNS configurado en Windows, que es lo que me choc pues yo lo que necesito es poder utilizar un servidor DNS que tengo montado y no el que esta configurado en Windows.

Código Delphi [-]
uses Winsock;

function GetHostFromIP(sIPAddress: string): string;
var
  WSAData: TWSAData;
  addr : Cardinal;
  lpHost1: PHostEnt;
begin
  Result := '';
  if WSAStartup(MakeWord(1,0), WSAData) = 0 then
  begin
    addr := inet_addr(PChar(sIPAddress));
    lpHost1 := GetHostByAddr(@addr, sizeof(addr), AF_INET);
    if lpHost1 <> nil then
      Result := StrPas(lpHost1^.h_name)
    else
      Result := sIPAddress;
    WSACleanup;
  end;
end;

Un ejemplo de uso

Código Delphi [-]
Caption := GetHostFromIP('10.0.0.22');

Ñuño Martínez 20-05-2011 13:12:26

Cita:

Empezado por fide_uci (Mensaje 400450)
Mira por ejemplo esta es una funcion que dado el IP te devuelve el nombre pero es usando Winsock y me imagino que automaticamente utiliza el DNS configurado en Windows, que es lo que me choc pues yo lo que necesito es poder utilizar un servidor DNS que tengo montado y no el que esta configurado en Windows.

Pues lo único que se me ocurre es ver si Indy o JEDI tienen un componente para comunicarse con servidores DNS. Y si no, informarse de cómo funciona el protocolo y hacerlo a mano. :o


La franja horaria es GMT +2. Ahora son las 05:35:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi