Algunas palabras sobre dns

Esta sección fue creada ya que el lector debería saber qué es un DNS.

DNS son las siglas de “Domain Name Service”[1] y, básicamente es usado para traducir direcciones IP. Por ejemplo, necesito saber la dirección IP del servidor queima.ptlink.net y usando el DNS puedo obtener la dirección IP 212.13.37.13.

Esto es importante en la medida de que las funciones que ya vimos (como bind() y connect()) son capaces de trabajar con direcciones IP.

Para mostrar cómo se puede obtener la dirección IP de un servidor, por ejemplo de queima.ptlink.net, utilizando C, el autor ha realizado un pequeño ejemplo:


#include <stdio.h>
#include <netdb.h>   /* gethostbyname() necesita esta cabecera */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

  
int main(int argc, char *argv[])
{ 

   struct hostent *he;

   if (argc!=2) {
      printf("Uso: %s &lt;hostname&gt;\n",argv[0]);
      exit(-1);
   }

   if ((he=gethostbyname(argv[1]))==NULL) {
      printf("error de gethostbyname()\n");
      exit(-1);
   }

   printf("Nombre del host: %s\n",he->h_name);  
      /* muestra el nombre del nodo */
   printf("Dirección IP: %s\n",
          inet_ntoa(*((struct in_addr *)he->h_addr)));
      /* muestra la dirección IP */

}

	

Notas

[1]

que se traduce como “Servicio de Nombres de Dominio”. Nota del T