gethostbyname、gethostbyaddr、uname
#include<unistd.h> #include<netdb.h> #include<sys/utsname.h> int main() { struct hostent *pHost = NULL; in_addr_t addr = inet_addr("127.0.0.1"); pHost = gethostbyaddr((char*)&addr,4,AF_INET); //struct utsname Name; //uname(&Name); //pHost = gethostbyname(Name.nodename); printf("name:%s\n",pHost->h_name); char **pAliases = pHost->h_aliases; for(; NULL != *pAliases; pAliases++) printf("aliases:%s\n",*pAliases); char **pAddrlist = NULL; switch(pHost->h_addrtype) { case AF_INET: case AF_INET6: pAddrlist = pHost->h_addr_list; for(; NULL != *pAddrlist; pAddrlist++) printf("address:%s\n",*pAddrlist); printf("first address:%s\n",pHost->h_addr); break; default: printf("unknown type\n"); break; } return 0; }
getservbyname、getservbyport
#include<unistd.h> #include<netdb.h> int main() { struct servent *pServ = NULL; //pServ = getservbyname("telnet","tcp"); pServ = getservbyport(htons(21),"tcp"); printf("s_name:%s\n",pServ->s_name); printf("s_port:%d\n",ntohs(pServ->s_port)); printf("s_proto:%s\n",pServ->s_proto); return 0; }