Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2006
arima arima is offline
Registrado
 
Registrado: jul 2006
Posts: 2
Poder: 0
arima Va por buen camino
Exclamation Convertir IP al nombre relacionado y viceversa

Buenas queridos amigos espero recibir su pronta ayuda y de paso despejar esta duda que me carcome la cabeza.

La verdad desearia que alguien me diga como puedo introducir por decir algo un numero IP en una caja de texto y que mi aplicacion me devuelva el nombre asociado a este IP. por ejemplo: si coloco el IP 64.233.187.99, el sistema me devuelva el nombre asociado que en este caso seria www.google.com

gracias de anteman o
Responder Con Cita
  #2  
Antiguo 05-07-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Si no me equivoco de eso se encargan los servidores DNS. Busca en el google. Los servidores DNS llevan asociado el dominio a la dirección IP.
__________________
l2prog.co.nr
Responder Con Cita
  #3  
Antiguo 05-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.110
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En este enlace puede contrarse la unidad "SimpleTcp" escrita por Piechnat. En dicha unidad existen dos funciones que no sé porqué a mí no me van bien, pero, que, puede que a ti te vayan bien, o, cuando menos, te da alguna que otra idea:

Código Delphi [-]
uses
  WinSock;

function HostToIP(Host: string): string;
var
  He: PHostEnt;
  InAddr: TInAddr;
begin
  Result := '';
  He := gethostbyname(PChar(Host));
  if He <> nil then
  begin
    Move(He^.h_addr_list^^, InAddr.S_addr, He^.h_length);
    Result := string(inet_ntoa(InAddr));
  end;
end;

function IPToHost(IP: string): string;
var
  He: PHostEnt;
  Addr: Integer;
begin
  Result := IP;
  Addr := inet_addr(PChar(IP));
  He:= gethostbyaddr(@Addr, SizeOf(Addr), AF_INET);
  if He <> nil then Result := He^.h_name;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 05-07-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Pues es verdad, eso lo hace el DNS, si este no encuentra la dirección entonces la mandará afuera ligando exito (claro está, si está configurado para hacer esto), por ejemplo en www.google.com.ve será consultado en dominio "ve" q ubicación tiene su .com y a este se le preguntará a q dirección apunta el nombre "google" y asi...
Con gethostbyname puedo resolver IP's dado el nombre en linux, en windows no he podido, siempre me devuelve un maldito '\n'.
Mira esto:
http://curl.haxx.se/mail/lib-2003-01/0241.html
http://msdn.microsoft.com/library/de...stbyname_2.asp
Edición: dec te me adelantaste por cuestión de congestión aqí existente, chiezen!! bueno estos enlaces tratan de lo mismo, no pongo mi código en windows xq aún no me funciona
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).

Última edición por OSKR fecha: 05-07-2006 a las 15:49:24.
Responder Con Cita
  #5  
Antiguo 05-07-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
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

Última edición por seoane fecha: 05-07-2006 a las 15:53:19.
Responder Con Cita
  #6  
Antiguo 05-07-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
En eso tienes razón, de lo contrario daría este error: WSANOTINITIALISED, pero aún no puedo resolver el IP dado el nombre, claro!! con el gethostbyname
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #7  
Antiguo 05-07-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Solo comentar que el que no funcione con google o con otros servidores no es un problema del codigo, simplemente esto significa que google en sus DNS no habra definido el registro en su zona inversa, de modo que no es posible saber el nombre a partir de la IP.

Otra cosa a tener en cuenta es que es posible que la funcion devuelva un nombre distinto al que esperariamos, eso es debido a que una misma IP puede tener muchos nombres distintos.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar Delphi 5 a 6,7 y viceversa Ivanzinho Varios 2 29-11-2005 10:36:14
Pasar de string a integer o viceversa. ¿Es posible? Kamikaze Varios 5 07-07-2005 15:44:57
Reporte relacionado m-d silviodp Impresión 2 05-01-2005 14:48:13
conversion de double a string y viceversa mainau Varios 2 03-08-2004 21:11:30
Convertir una Variable de String a Integer y Viceversa. aleidania Varios 1 13-07-2003 16:35:37


La franja horaria es GMT +2. Ahora son las 02:13:11.


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
Copyright 1996-2007 Club Delphi