PRHostEnt¶
一个定义网络地址列表的结构体。该结构体由 PR_GetHostByName 和 PR_GetHostByAddr 输出,并传递给 PR_EnumerateHostEnt。客户端应避免直接访问该结构体的任何字段。
语法¶
#include <prnetdb.h>
typedef struct PRHostEnt {
char *h_name;
char **h_aliases;
#if defined(_WIN32)
PRInt16 h_addrtype;
PRInt16 h_length;
#else
PRInt32 h_addrtype;
PRInt32 h_length;
#endif
char **h_addr_list;
} PRHostEnt;
字段¶
该结构体包含以下字段
h_name
指向主机官方名称的指针。
h_aliases
指向指向别名列表的指针的指针。该列表以
NULL
项结尾。h_addrtype
主机地址类型。对于有效的 NSPR 用法,此字段必须具有指示 IPv4 或 IPv6 地址的值。
h_length
地址内部表示的长度(以字节为单位)。列表中的所有地址类型相同,因此长度也相同。
h_addr_list
指向指向来自名称服务器的地址列表的指针的指针(以网络字节序表示)。该列表以
NULL
项结尾。
描述¶
此结构体由许多网络地址函数使用。所有地址都以主机序传递,并以网络序返回(适用于系统调用)。
使用网络地址函数操作 PRHostEnt 结构体。为了更容易过渡到 IP 版本 6,最好将 PRHostEnt 视为不透明结构体。
注意¶
WINSOCK.H
将 h_addrtype
和 h_length
定义为 16 位字段,而其他平台将其视为 32 位字段。结构体中的 #ifdef
允许直接赋值 PRHostEnt 结构体。