Red de conocimiento informático - Material del sitio web - El nombre de dominio termina en Nulo.

El nombre de dominio termina en Nulo.

# incluir ltstdio.h gt

# incluir ltsys/types ;

# incluir ltsys/socket ;

# incluir ltnetinet/in. . h gt;

# include ltarpa/inet .

# include ltnetdb.h gt

//Incluye el archivo de encabezado correspondiente.

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 para usar más adelante

if(argc lt; 2)

{

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

Salir(1); /Parámetros Se produce una excepción cuando argc es menor que 2 y sale.

}

arg v ;

for(;*argv!= NULLargv)

{

/ *Aquí asumimos que es IP*/

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

{

host = gethostbyaddr( (( char *) & addr.sin_addr, 4, AF_INET); // Si la dirección entrante es addr, llame a la función gethostbyaddr para convertirla en un nombre de dominio.

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

}

Otros

{

/*Domain name*/

host = gethostbyname(* argv); //Si se pasa un 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)

<); p>{

/*No encontrado*/

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

Continuar; //Imprimir cuando ocurre un error

}

printf("Nombre de host formal s\n ",host-gt;h_name);

printf(" Alias ​​de nombres: ");

for (alias = host-gt; h_alias; *alias! = NULL alias)

printf("s,", *alias); // Imprima la información requerida en el nombre de dominio.

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

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

printf ("s \n,", inet _ ntoa(*(struct in _ addr *)(* alias)));

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

}

Devuelve 0;

}