C/C++ socket编程(1)
1.主机名到IP地址的映射。
IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间。例子:
bool MY_getHostbyName(char * const hostname)
{
struct hostent *hptr;
if((hptr = gethostbyname(hostname)) == NULL)
{
printf("[ERROR] can not analyze hostname : \t%s\n", hostname);
return false;
}
printf("official hostname : \t%s\n", hptr->h_name);
char **pptr;
char str[32] = {0};
for(pptr = hptr->h_aliases; *pptr != NULL; pptr++)
printf(" alias:%s\n",*pptr);
switch(hptr->h_addrtype)
{
case AF_INET:
for(pptr = hptr->h_addr_list; *pptr != NULL; pptr++)
{
inet_ntop(hptr->h