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.107
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
  #8  
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
Mick:
Cita:
eso es debido a que una misma IP puede tener muchos nombres distintos
? Será un nombre...muchas IP's....no se como sería lo contrario
__________________
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
  #9  
Antiguo 05-07-2006
arima arima is offline
Registrado
 
Registrado: jul 2006
Posts: 2
Poder: 0
arima Va por buen camino
gracias 1000

les doy gracias por la ayuda que me prestan muchachos, probare todas sus sugerencias y les aviso si se pudo o no

gracias idolos
Responder Con Cita
  #10  
Antiguo 25-07-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Cita:
Empezado por OSKR
Mick:

? Será un nombre...muchas IP's....no se como sería lo contrario
Si contratas espacio web en cualquier empresa de hosting virtual, veras que tu web se instalará en un ordenador que es compartido por muchas otras webs y clientes, de modo que en una misma IP, tendria muchos nombres distintos.
Por ejemplo, supongamos que clubdelphi estuviese en un host virtual, entonces;

www.clubdelphi.com
www.loquesea.com
www.pepito.es

Todos esas webs podrian estar alojadas en la misma IP.

Haces un ping a www.clubdelphi.com y ves que la IP es pongamos por ejemplo (no es cierto): 231.23.34.11

Pues luego podriamos pensar que si hacemos lo contrario, es decir pedir el nombre de 231.23.34.11, deberia salir:
www.clubdelphi.com,
Pues lo mas probable es que te saliese algo del estilo:
servidor1.empresadehostlaquesea.com
Que no tiene nada que ver con www.clubdelphi.com.

Y ni siquiera es necesario que la web este en un host virtual, es comun que quien tenga un servidor tenga en el mismo equipo distintos servicios, y haya dado de alta distintos nombres para la misma ip, por jemplo.

www.clubdelphi.com
mail.clubdelphi.com
ftp.clubdelphi.com

Todos podrian estar apuntando a la misma, ip, al mismo ordenador.


Saludos
Responder Con Cita
  #11  
Antiguo 26-07-2006
EveElgrande EveElgrande is offline
Miembro
 
Registrado: jul 2006
Posts: 18
Poder: 0
EveElgrande Va por buen camino
Entonces...

Amigos, yo no se mucho de esto...pero no se podría hacer que dada la dirección IP se obtenga todos los servicios de internet asociados al equipo con dicha IP...

Última edición por EveElgrande fecha: 26-07-2006 a las 14:06:14.
Responder Con Cita
  #12  
Antiguo 27-07-2006
EveElgrande EveElgrande is offline
Miembro
 
Registrado: jul 2006
Posts: 18
Poder: 0
EveElgrande Va por buen camino
Entonces...

Cita:
Empezado por EveElgrande
Amigos, yo no se mucho de esto...pero no se podría hacer que dada la dirección IP se obtenga todos los servicios de internet asociados al equipo con dicha IP...
¿Se podrá hacer esto...?

Última edición por EveElgrande fecha: 27-07-2006 a las 15:04:02.
Responder Con Cita
  #13  
Antiguo 27-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
Cita:
Empezado por EveElgrande
Amigos, yo no se mucho de esto...pero no se podría hacer que dada la dirección IP se obtenga todos los servicios de internet asociados al equipo con dicha IP...
Para eso se utiliza un escaner de puertos, que básicamente busca puertos abiertos. Algunos van mas allá e intentan adivinar para que se utiliza ese puerto, para ello prueban con los protocolos mas habituales http, ftp, etc... y analizan la respuesta del servidor.

Si quieres hacer algo parecido desde delphi, la primera parte es sencilla. Utilizando TidTCPClient de Indy, TClientSocket o cualquier otro similar en un bucle puedes intentar establecer una conexión con cada uno de los puertos de una lista, averiguando así si están abiertos o no. Lo segundo, averiguar para que sirve cada puerto ya es algo mas difícil, podemos suponer que el 80 es para http pero puede que lo estén utilizando para cualquier otra cosa y que para http usen el 6000, por eso hay que hacer pruebas con varios protocolos.
Responder Con Cita
  #14  
Antiguo 27-07-2006
EveElgrande EveElgrande is offline
Miembro
 
Registrado: jul 2006
Posts: 18
Poder: 0
EveElgrande Va por buen camino
Graciasssss

Bueno amigo, si que entendí tu explicación y pero a la hora de programar lo que me has dicho es donde me pierdo, acuérdate que soy nuevo, na pero poco a poco jejejeje...dame un norte....
Responder Con Cita
  #15  
Antiguo 27-07-2006
EveElgrande EveElgrande is offline
Miembro
 
Registrado: jul 2006
Posts: 18
Poder: 0
EveElgrande Va por buen camino
Entonces...

Hola Seoane hace falta, si tienes un ejemplo de esto a mano por favor tíralo para acá...

Última edición por EveElgrande fecha: 27-07-2006 a las 21:41:17.
Responder Con Cita
  #16  
Antiguo 27-07-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Solo comentar, que en algunos paises hacer un scaneo de puertos sobre una computadora ajena sin permiso es ilegal, asi que cuidadin.

Saludos
Responder Con Cita
  #17  
Antiguo 16-08-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
No puedo creerlo!! ya pude responder a este tema q tanto problema me diò
Al grano..
Mick:
Cita:
Cita:
Originalmente Escrito por OSKR
Mick:

? Será un nombre...muchas IP's....no se como sería lo contrario



Si contratas espacio web en cualquier empresa de hosting virtual, veras que tu web se instalará en un ordenador que es compartido por muchas otras webs y clientes, de modo que en una misma IP, tendria muchos nombres distintos.
Por ejemplo, supongamos que clubdelphi estuviese en un host virtual, entonces;

www.clubdelphi.com
www.loquesea.com
www.pepito.es

Todos esas webs podrian estar alojadas en la misma IP.

Haces un ping a www.clubdelphi.com y ves que la IP es pongamos por ejemplo (no es cierto): 231.23.34.11

Pues luego podriamos pensar que si hacemos lo contrario, es decir pedir el nombre de 231.23.34.11, deberia salir:
www.clubdelphi.com,
Pues lo mas probable es que te saliese algo del estilo:
servidor1.empresadehostlaquesea.com
Que no tiene nada que ver con www.clubdelphi.com.

Y ni siquiera es necesario que la web este en un host virtual, es comun que quien tenga un servidor tenga en el mismo equipo distintos servicios, y haya dado de alta distintos nombres para la misma ip, por jemplo.

www.clubdelphi.com
mail.clubdelphi.com
ftp.clubdelphi.com

Todos podrian estar apuntando a la misma, ip, al mismo ordenador.
Insisto...el nombre es sigue siendo uno solo....un nombre...n IP's.
Otra cosa es un DNS redirija la peticiòn a un IP comùn a otros DNS por aqello de la resoluciòn de nombres de dominio, tener una URL apuntando a tu IP (por decirlo asi), q tu proxy responda al trafico web q correspondrìa a un servidor q esta detras del mismo reenviando dichas cabeceras, etc...pero el nombre es uno solo, las URL si pueden ser muchas.
__________________
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
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 10:20:51.


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