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;
}