inet_makeaddr 子例程

用途

根据应用程序提供的网络标识和主机标识,返回一个包含 Internet Protocol 地址的结构。

标准 C 库 (libc.a)

语法

#include <sys/socket.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
struct in_addr inet_makeaddr ( Net,  LocalNetAddr)
int Net, LocalNetAddr;

描述

Inet_makeaddr 子例程根据应用程序提供的网络标识和主机标识 (作为整数类型) 来构成 Internet Protocol (IP) 地址。 如果应用程序提供了 A 类网络标识,那么 Inet_makeaddr 子例程将使用最高顺序字节中的网络标识以及主机标识和 0x00FFFFFF 的 3 产品 (3 个最低顺序字节) 来构成 IP 地址。 如果应用程序提供 B 类网络标识,那么 Inet_makeaddr 子例程将使用两个最高顺序字节中的网络标识以及主机标识和 0x0000FFFF 的逻辑产品 (两个最低顺序字节) 来构成 IP 地址。 如果应用程序未提供 A 类或 B 类网络标识,那么 Inet_makeaddr 子例程将使用 3 个最高顺序字节中的网络标识以及主机标识和 0x0000FFFF 的逻辑产品 (在最低顺序字节中) 来构成 IP 地址。

Inet_makeaddr 子例程确保 IP 地址格式符合网络顺序,其中第一个字节表示高位字节。 Inet_makeaddr 子例程将 IP 地址作为无符号长整型值存储在结构中。

应用程序必须验证该 IP 地址的网络标识和主机标识是否符合 A 类, B 类或 C 类。 Inet_makeaddr 子例程将任何不一致的数字作为 C 类地址处理。

Inet_makeaddr 子例程预期 In_addr 结构仅包含 IP 地址字段。 否则,如果应用程序定义 In_addr 结构,那么 Inet_makeaddr 子例程在 In_addr 中返回的值未定义。

所有包含 Inet_makeaddr 子例程的应用程序都必须在将 _BSD 宏设置为特定值的情况下进行编译。 可接受的值为 43 和 44。 此外,所有套接字应用程序都必须包含 BSD libbsd.a 库。

参数

描述
网络 包含因特网网络号。
LocalNetAddr 包含本地网络地址。

返回值

成功完成后, Inet_makeaddr 子例程将返回包含 IP 地址的结构。

如果inet_makeaddr子程序不成功,子程序将返回-1。

文件

描述
 /etc/hosts 包含主机名。