PRHostEnt

一个定义网络地址列表的结构体。该结构体由 PR_GetHostByNamePR_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.Hh_addrtypeh_length 定义为 16 位字段,而其他平台将其视为 32 位字段。结构体中的 #ifdef 允许直接赋值 PRHostEnt 结构体。