INET_NET(3) | FreeBSD Library Functions Manual | INET_NET(3) |
名称
inet_net_ntop, inet_net_pton — インターネットネットワーク番号操作ルーチンライブラリ
Standard C Library (libc, -lc)書式
#include < sys/types.h>#include < sys/socket.h>
#include < netinet/in.h>
#include < arpa/inet.h>
char *
inet_net_ntop( int af, const void *src, int bits, char *dst, size_t size);
int
inet_net_pton( int af, const char *src, void *dst, size_t size);
解説
inet_net_ntop() 関数はインターネットネットワーク番号をネットワークフォーマット (通常 struct in_addr あるいはネットワークバイトオーダの他のあるバイナリ形式) から CIDR プレゼンテーションフォーマット (外部ディスプレイ目的にふさわしい) に変換します。 bits 引数はネットワーク番号である src でのビットの番号です。システムエラーが生じる場合 (その場合は errno が設定されます) それは NULL を返します。あるいは、それは目的の文字列へのポインタを返します。inet_net_pton() 関数は、プレゼンテーションフォーマットインターネットネットワーク番号 (すなわち、文字列に保持されるような印刷可能な形式) をネットワークフォーマット (通常 struct in_addr あるいはネットワークバイトオーダの他のあるバイナリ形式) に変換します。それは、ビットの番号を返します。 (クラスに基づいて計算されたか、/CIDR で指定したかのいずれか) あるいは失敗が生じた場合、-1 を返します。 (その場合は errno が設定されます。もしインターネットネットワーク番号が有効でなければ、それは ENOENT に設定されるでしょう。)
af のために現在サポートされている値は AF_INET と AF_INET6 です。 size 引数は結果バッファ dst のサイズです。
ネットワーク番号 (IP バージョン 4)
インターネットネットワーク番号は次の形式のうちの 1 つで指定できます。
a.b.c.d/bits a.b.c.d a.b.c a.b a
4 つの部分が指定される場合、各々はデータの 1 バイトとして解釈され、インターネットネットワーク番号の 4 バイトまで左から右に割り当てられます。インターネットネットワーク番号が、リトルエンディアンバイト順 (Intel 386, 486, および Pentium プロセッサのような) を使用するシステムで 32 ビットの整数量として見られる場合、上記で参照されたバイトが“ d.c.b.a
”として現われることに注意してください。すなわち、リトルエンディアンバイトは、右から左の順序となります。
3 つの部分番号が指定される場合、最後の部分は 16 ビットの量として解釈され、インターネットネットワーク番号の右端の 2 バイトに置かれます。これは 3 つの部分番号フォーマットを、“ 128.net.host
”としてクラス B ネットワーク番号を指定することを便利にします。
2 つの部分番号が供給される場合、最後の部分は 24 ビットの量として解釈され、インターネットネットワーク番号の右端の 3 バイトに置かれます。これは 2 つの部分番号フォーマットを、“ net.host
”としてクラス A ネットワーク番号を指定することを便利にします。
1 つの部分だけが与えられる場合、値はバイト再配置のないインターネットネットワーク番号に直接格納されます。
‘ .
’記法での“部分”として供給されたすべての番号は、C 言語 (つまり、先導する 0x あるいは 0X は 16 進数を意味します。そうでなければ、先導する 0 は 8 進数を意味します。そうでなければ、数は 10 進数として解釈されます) で指定されるように、10 進数、8 進数あるいは 16 進数であり得ます。
歴史
inet_net_ntop() と inet_net_pton() 関数は、 BIND 4.9.4 で登場しました。February 26, 2006 | FreeBSD |