• Miércoles 6 de Noviembre de 2024, 03:54

Autor Tema:  Sockets, Http Y Urls  (Leído 1591 veces)

ragnarok

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Sockets, Http Y Urls
« en: Jueves 29 de Septiembre de 2005, 16:16 »
0
¿Hay alguna forma de usar una URL en lugar de una IP para conectar un socket?, ¿o una función de traducción de URL a IP?. Estoy haciendo un programa que se conecte a una página, pero si el hosting mueve la página de servidor o cambia la IP no funcionaría.

Además estoy intentando hacer un GET de una página: http://nosecuantos.iespana.es/dir.htm que es equivalente a http://www.iespana.es/nosecuantos/dir.htm. No importa si pongo la dirección IP de iespana.es o la de nosecuantos.iespana.es y hago el GET de /nosecuantos/dir.htm o sólo de /dir.htm o no me responde absolutamente nada o me da un error 404.

Con otras páginas si me ha funcionado. Con este foro por ejemplo tampoco. Supongo que hay algo que se me está pasando por alto, pero no sé el qué.

Muchas gracias.

Diodo

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Sockets, Http Y Urls
« Respuesta #1 en: Jueves 29 de Septiembre de 2005, 19:25 »
0
Hola

Puedes usar la funcion gethostbyname que tiene como argumento un *char al que hay que meter la direccion de la que deseas obtener el host. Esta funcion devuelve un puntero a una estructura hostent que almacena toda la informacion del host

Estos son los prototipos de la funcion y de la estructura

Código: Text
  1.  
  2. #include <netdb.h>
  3. struct hostent *gethostbyname(const char *name);
  4. struct hostent
  5. {
  6. char *h_name;
  7. char **h_aliases;
  8. int h_addrtype;
  9. int h_length;
  10. char **h_addr_list;
  11. #define h_addr h_addr_list[0]
  12. };
  13.  

Y aca para que sirve cada dato de la estructura

h_name −− Nombre oficial de la máquina. h_aliases −− Un vector terminado en NULL de nombres alternativos de máquina.
h_addrtype −− Tipo de la dirección que se devuelve; usualmente AF_INET. ·
h_length −− La longitud de la dirección en bytes.
h_addr_list −− Un vector terminado en cero de direcciones de red de la máquina. Las direcciones siguen la Ordenación de bytes de la red.
h_addr −− La primera dirección de h_addr_list.


salu2  :hola:

ragnarok

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Sockets, Http Y Urls
« Respuesta #2 en: Jueves 29 de Septiembre de 2005, 20:22 »
0
Me pasa una de las cosas más raras que he visto nunca, en h_addr obtengo basura concatenada con la url que paso en la llamada a gethostbyname.