EN JA
INET_NET(3)
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_INETAF_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