| 総合手引 | セクション 3 | English | オプション |
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
inet_pton() 関数は、表示形式のアドレス (つまり文字列で保持されている印字可能な形式) から ネットワーク形式 (通常 struct in_addr もしくは他の内部的なバイナリ表現形式で、ネットワークバイトオーダ) への 変換を行います。 この関数は、指定されたアドレスファミリにおいて、アドレスが 有効なものであれば 1 を返し、パースできなければ 0 を返します。 またシステムエラーが発生した時 (この場合は errno が設定されます) には、-1 を返します。 この関数は現在 AF_INET と AF_INET6 に対して有効です。
inet_aton() ルーチンは、指定された文字列をインターネットアドレスとして解釈し、 与えられた構造体の中にアドレスを設定します。 文字列が正常に解釈されると同ルーチンは 1 を返し、 文字列が無効のとき 0 を返します。 inet_addr() と inet_network() 関数はそれぞれ、 インターネットアドレスとインターネットネットワーク番号として使うのに 適した数値を返します。
inet_ntop() 関数は、ネットワーク形式 (通常 struct in_addr もしくは他の内部的なバイナリ形式で、ネットワークバイトオーダ) から 表示形式 (外部に表示するのに適した形式) への変換を行います。 この関数は、システムエラーが発生した時 (この場合は errno が設定されます) にはヌルを返し、それ以外の時は目的の文字列への ポインタを返します。 この関数は現在 AF_INET と AF_INET6 に対して有効です。
inet_ntoa() ルーチンは、インターネットアドレスを受け取り ‘.amp;’ 表記法のアドレスを示す ASCII 文字列を返します。 inet_makeaddr() ルーチンはインターネットネットワーク番号と ローカルネットワークアドレスを受け取り、 それを基にしてインターネットアドレスを生成します。 inet_netof() と inet_lnaof() ルーチンはインターネットホストアドレスを分割して、 それぞれネットワーク番号とローカルネットワークアドレス部として返します。
すべてのインターネットアドレスはネットワークオーダ (左から右への バイト順) で返されます。 ネットワーク番号とローカルアドレス部はすべてマシン形式の整数値で 返されます。
a.b.c.d a.b.c a.b a
4 個の部分アドレスが指定されると、各部分は 1 バイトのデータと解釈されて、 左から右の順でインターネットアドレスの 4 バイトに割り当てられます。 インターネットアドレスが VAX 上で 32 ビットの整数値であると見なされるとき、上記に該当するバイトは、 "d.c.b.a" と表示されることに注意して下さい。 すなわち、 VAX のバイトオーダは右から左の順になります。
3 個の部分アドレスが指定されると、最後の部分が 16 ビット値と解釈されて、 ネットワークアドレスの右端の 2 バイトになります。 これにより 3 つの部分アドレス形式で Class B ネットワークアドレスを "128.net.host" と指定でき、便利です。
2 個の部分アドレスが与えられると、最後の部分アドレスが 24 ビット値として 解釈されて、ネットワークアドレスの右端の 3 バイトになります。 これにより 2 個の部分アドレス形式で Class A ネットワークアドレスを "net.host" と指定でき、便利です。
1 個の部分アドレスだけ指定されると、値はバイトの再調整なしに 直接ネットワークアドレスに保存されます。
‘.amp;’ 表記法で "部分" として供給される数値はすべて、C 言語で指定される 10 進数、8 進数、16 進数の いずれかの形式を取ることができます (すなわち、先行の 0x または 0X は 16 進数を意味し、 先行する 0 は 8 進数を意味し、数値は 10 進数と解釈されます) 。
inet_aton() と inet_ntoa() 関数は幾分避けるべき関数で、むしろ addr2ascii(3) ファミリが使われます。 しかし、これらの関数はまだ広く実装されていないため、 当面、移植性のあるプログラムはこれらの関数に依存できず、 inet(3) 関数が使われ続けるでしょう。
2373, RFC, IP Version 6 Addressing Architecture, July 1998.
inet_addr は struct, in_addr を返す必要があります。
| INET (3) | June 17, 1996 |
| 総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
| “ | "I liken starting one's computing career with Unix, say as an undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act." | ” |
| — Ken Pier, Xerox PARC | ||