gethostbyaddr 子例程
用途
按地址获取网络主机项。
库
Standard C Library (libc.a)
(libbind)
(libnis)
(liblocal)语法
描述
盖托斯比德尔 子例程是线程安全的。 但是,该返回值指向由后续调用覆盖的静态数据。 必须复制此数据以进行保存,以供后续调用使用。
盖托斯比德尔 子例程使用主机地址作为搜索键来检索有关主机的信息。 除非指定,否则 gethostbyaddr 子例程使用缺省名称服务排序,即,它将查询 DNS/BIND , NIS ,然后查询本地 /etc/hosts 文件。
使用 DNS/BIND 名称服务解析时,如果文件 /etc/resolv.conf 存在,那么 gethostbyaddr 子例程会查询域名服务器。 盖托斯比德尔 子例程识别域名服务器,如 RFC 883 中所述。
使用 NIS 进行名称解析时,如果 getdomainname 子例程成功并且 Yp_bind 指示 NIS 正在运行,那么 盖托斯比德尔 子例程将查询 NIS。
gethostbyaddr 子例程还在指示执行此操作时搜索本地 /etc/hosts 文件。
盖托斯比德尔 返回一个指向 主机 结构的指针,该结构包含从某个名称解析服务获取的信息。 hostent 结构在 netdb.h 文件中定义。
可以将环境变量 NSORDER 设置为覆盖缺省名称服务排序以及 /etc/netsvc.conf 文件中指定的顺序。
参数
| 项 | 描述 |
|---|---|
| 地址 | 指定主机地址。 主机地址作为指向二进制格式地址的指针进行传递。 |
| 长度 | 指定主机地址的长度。 |
| TYPE | 指定该主机地址的域类型。 它可以是 AF_INET 或 AF_INET6。 |
返回值
盖托斯比德尔 子例程在成功时返回指向 主机 结构的指针。
如果发生错误或到达文件末尾,那么 盖托斯比德尔 子例程将返回 NULL 指针并设置 h_errno 以指示该错误。
错误代码
如果发生以下任何错误,那么 盖托斯比德尔 子例程不成功:
| 错误 | 描述 |
|---|---|
| 未找到 HOST_NOT_FOUND | 找不到由 姓名 参数指定的主机。 |
| TRY_AGAIN | 本地服务器未接收到来自权威服务器的响应。 请稍后重试。 |
| 未恢复 | 此错误代码指示不可恢复的错误。 |
| 无地址 | 请求的 地址 参数有效,但在名称服务器上不具有名称。 |
| 服务不可用 | 指定的名称服务都未在运行或不可用。 |
文件
| 项 | 描述 |
|---|---|
| /etc/hosts | 包含主机名数据库。 |
| /etc/resolv.conf | 包含名称服务器和域名称信息。 |
| /etc/netsvc.conf | 包含订购的服务的名称。 |
| /usr/include/netdb.h | 包含网络数据库结构。 |