UNIX系统内部用一个主机网络地址数据库来记住主机名和IP地址直接的映射,这一数据库由文件**/etc/hosts/**或DNS提供。
netdb.h
用于报错一台主机的完整地址信息
struct hostent //host entry的缩写
{
char *h_name; /* 主机的正式名字 */
char **h_aliases; /* 主机的可选别名 */
int h_addrtype; /* 主机地址类型 */
int h_length; /* 每一个地址的长度,以字节为单位 */
char **h_addr_list; /* 指向主机网络地址数组的指针 */
}
###部分字段解释
字段名 | 描述 |
---|---|
h_aliases | 它是一个以空结尾的字符串向量 |
h_addrtype | 它的值是AF_INET或AF_INET6,也可以是其他类型 |
h_length | 对于IPv4,其值为4,对于IPv6,其值为16 |
h_addr_list | 主机可能与多个网络连接,因而每一个网络有不同的地址,地址数组以空指针表示结束 |
##主要函数 | |
函数 | 描述 |
---- | ---- |
[[gethostbyname | gethostbyname]] |
[[gethostbyaddr | gethostbyaddr]] |
[[sethostent | sethostent]] |
[[gethostent | gethostent]] |
[[endhostent | endhostent]] |