El nombre de dominio termina en Nulo.
# 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;
}