標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4.2 |
両方 |
#define _XOPEN_SOURCE_EXTENDED 1
#include <arpa/inet.h>
in_addr_t inet_addr(const char *cp);
#define _OE_SOCKETS
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
unsigned long inet_addr(char *cp);
inet_addr() 関数は、標準の小数点付き 10 進数表記で表されたホスト・アドレスの文字ストリングを変換し、IP アドレスとして使用できるホスト・アドレスを戻します。
a.b.c.d
a.b.c
a.b
a
4 つのパートにより構成されるアドレスが指定された場合、各パートがデータ・バイトとして変換され、それぞれが IP アドレスの 4 バイトの 1 つに、左から右へ割り当てられます。
3 つのパートにより構成されるアドレスが指定された場合、最後のパートが 16 ビットとして変換され、ネットワーク・アドレスの右端の 2 バイトになります。これにより、3 パートのアドレス形式で 128.net.host 形式のクラス B ネットワーク・アドレスを指定できるようになります。
2 つのパートにより構成されるアドレスが指定された場合、最後のパートが 24 ビットとして変換され、ネットワーク・アドレスの右端の 3 バイトになります。これにより、2 パートのアドレス形式で net.host 形式のクラス A ネットワーク・アドレスを指定できるようになります。
1 つのパートにより構成されるアドレスが指定された場合、バイトの再構成を行うことなく、その値が直接ネットワーク・アドレス・スペースに 保管されます。
標準の小数点表記アドレスのパートとして使える数字は、10 進数、16 進数、または 8 進数です。数字は C 言語の構文で変換されます。 0x で始まる場合は 16 進数、0 で始まる場合は 8 進数、0 で始まらない数字は、10 進数を意味します。
アドレスは、ヌルまたは他の空白文字で 終わっていないと有効ではありません。アドレスのすべてのパートまたは一部のパートが空ストリングであってもかまいません。 それぞれの空のパートは値 0 に解決されます。ヌルまたは他の空白文字で始まる入力文字ストリングは、 空のアドレスとして扱われ、値 INADDR_ANY が戻される結果になります。
C++ の特殊な動作: C++ でこの関数を使用するには、_XOPEN_SOURCE_EXTENDED 1 フィーチャー・テスト・マクロを 使用する必要があります。
正常に実行された場合、inet_addr() は、ネットワーク・バイト・オーダーの IP アドレスを戻します。
入力文字ストリングの形式が正しくない場合、値 INADDR_NONE が 戻され、errno は EINVAL に設定されます。