Gethostbyname.c
1#include <stdio.h>2#include <stdlib.h>3#include <unistd.h>4#include <arpa/inet.h>5#include <arpa/inet.h>6#include <netdb.h>7 8 intMainintargcChar*argv[])9 {Ten inti; One structhostent*host; A if(ARGC! =2) - { -printf"Usage:%s <addr>\n", argv[0]); theExit1); - } - -Host = gethostbyname (argv[1]); + if(!host) - { +printf"Get host error......\n"); AExit1); at } -printf"official name:%s\n",host->h_name); - for(i =0; host->h_aliases[i];i++) -printf"access%d;%s\n", i+1,host->h_aliases[i]); -printf"address type:%s \ n", (host->h_addrtype==af_inet)?"af_inet":"AFINET6"); - for(i =0; host->h_addr_list[i];i++) inprintf"IP addr%d:%s \ n", i+1, Inet_ntoa (* (structin_addr*) host->h_addr_list[i])); - return 0; to}
Gethostbyaddr.c
1#include <stdio.h>2#include <stdlib.h>3#include <string.h>4#include <unistd.h>5#include <arpa/inet.h>6#include <netdb.h>7 8 intMainintargcChar*argv[])9 {Ten inti; One structhostent*host; A structsockaddr_in addr; - if(ARGC! =2) - { theprintf"Usage:%s <ip>\n", argv[0]); -Exit1); - } - +memset (&ADDR,0,sizeof(addr)); -ADDR.SIN_ADDR.S_ADDR = inet_addr (argv[1]); +Host = Gethostbyaddr ((Char*) &addr.sin_addr,4, af_inet); A if(!host) at { -printf"Get host error\n"); -Exit1); - } - -printf"official name;%s \ n",host->h_name); in for(i =0; host->h_aliases[i];i++) -printf"aliases%d:%s\n",i,host->h_aliases[i]); toprintf"Address type:%s\n", (host->h_addrtype==af_inet)?"af_inet":"Af_inet6"); + for(i =0; host->h_addr_list[i];i++) -printf"IP Addr%d;%s\n", i+1, Inet_ntoa (* (structin_addr*) host->h_addr_list[i])); the return 0; *}
Socket learning notes-get Domain name and IP (Linux)