netdb.h
-
引用
#include <netdb.h> -
域名转换为ip地址结构体
struct hostent* gethostbyname(const char* hostname);- 返回的结构体
struct hostent { char* h_name; char** h_aliases; int h_addrtype; int h_length; char** h_addr_list }- h_addrtype ip地址类型
- 若是IPv4,则存有AF_INET
- h_length ip地址长度
- 若是IPv4,则是4,若是IPv6,则是16
- h_addr_list 一连串ip地址的指针
- 其中每个元素也是指针,指向32位整型ip值,最后一个元素为NULL
- 提取为 点分十进值
host = gethostbyname("xxx") for (int i = 0; host->h_addr_list[i]; i++) { printf("IP addr %d: %s \n", i + 1, inet_ntoa(*(struct inaddr*)host->h_addr_list[i])); }
- h_addrtype ip地址类型
- 返回的结构体