Red de conocimientos turísticos - Información de alquiler - Acerca del código de resolución de nombres de dominio DNS, es muy breve y no se puede entender. Los expertos pueden ayudar.

Acerca del código de resolución de nombres de dominio DNS, es muy breve y no se puede entender. Los expertos pueden ayudar.

#include

#include

#include

#include

#include

#include

/ /Incluir archivos de encabezado correspondientes

int main(int argc,char **argv)

{

struct sockaddr_in addr //Estructura para guardar la dirección IP

struct hostent *host; //Estructura para guardar el nombre de dominio

char **alias; //Puntero usado más adelante

if(argc<2)

{

fprintf(stderr,"Uso:%s nombre de host|ip..\n\a",argv[0]);

salir( 1) ; //Excepción cuando el parámetro argc es menor que 2

}

argv++

for(;*argv!=NULL;argv++)

{

/* Aquí asumimos que es IP*/

if(inet_aton(*argv,&addr.sin_addr)!=0)

{

host=gethostbyaddr((char *)&addr.sin_addr,4,AF_INET); //Si se pasa addr, llama a la función gethostbyaddr para convertirlo en un nombre de dominio

printf ("Información de dirección de Ip %s\n",*argv

}

else

{

/*); Nombre de dominio */

host=gethostbyname(*argv); //Si se pasa el nombre, llame a la función gethostbyname para convertirlo en un nombre de dominio

printf("Información de dirección del host %s\ n",*argv);

}

if(host==NULL)

{

/ * No encontrado* /

fprintf(stderr,"No hay información de dirección de %s\n",*argv

continuar //Imprimir en caso de error

<); p>}

printf("Nombre de host oficial %s\n",host->h_name);

printf("Alias ​​de nombre:"); >for( alias=host->h_aliases;*alias!=NULL;alias++)

printf("%s ,",*alias //Imprime la información requerida en el nombre de dominio

printf("\nDirección IP:\n");

for(alias=host->h_addr_list;*alias!=NULL;alias++)

printf( "%s \n ,",inet_ntoa(*(estructura en

_addr *)(*alias)));

//Imprime la información requerida en el nombre de dominio

}

return 0;

}