INET

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

inet_aton inet_addr inet_network inet_ntoa inet_ntop inet_pton inet_makeaddr inet_lnaof inet_netof - インターネットアドレス操作関数  

索引

ライブラリ

Lb libc  

索引

書式

In sys/types.h In sys/socket.h In netinet/in.h In arpa/inet.h Ft int Fn inet_aton const char *cp struct in_addr *pin Ft unsigned long Fn inet_addr const char *cp Ft unsigned long Fn inet_network const char *cp Ft char * Fn inet_ntoa struct in_addr in Ft const char * Fn inet_ntop int af const void *src char *dst size_t size Ft int Fn inet_pton int af const char *src void *dst Ft struct in_addr Fn inet_makeaddr unsigned long net unsigned long lna Ft unsigned long Fn inet_lnaof struct in_addr in Ft unsigned long Fn inet_netof struct in_addr in  

索引

解説

Fn inet_aton , Fn inet_addr および Fn inet_network ルーチンは、インターネット標準の `.' 表記法で示される数値を表現している文字列を解釈します。

Fn inet_pton 関数は、表示形式のアドレス (つまり文字列で保持されている印字可能な形式) から ネットワーク形式 (通常 Ft struct in_addr もしくは他の内部的なバイナリ表現形式で、ネットワークバイトオーダ) への 変換を行います。 この関数は、指定されたアドレスファミリにおいて、アドレスが 有効なものであれば 1 を返し、パースできなければ 0 を返します。 またシステムエラーが発生した時 (この場合は errno が設定されます) には、-1 を返します。 この関数は現在 AF_INETAF_INET6 に対して有効です。

Fn inet_aton ルーチンは、指定された文字列をインターネットアドレスとして解釈し、 与えられた構造体の中にアドレスを設定します。 文字列が正常に解釈されると同ルーチンは 1 を返し、 文字列が無効のとき 0 を返します。 Fn inet_addr と Fn inet_network 関数はそれぞれ、 インターネットアドレスとインターネットネットワーク番号として使うのに 適した数値を返します。

Fn inet_ntop 関数は、ネットワーク形式 (通常 Ft struct in_addr もしくは他の内部的なバイナリ形式で、ネットワークバイトオーダ) から 表示形式 (外部に表示するのに適した形式) への変換を行います。 この関数は、システムエラーが発生した時 (この場合は errno が設定されます) にはヌルを返し、それ以外の時は目的の文字列への ポインタを返します。 この関数は現在 AF_INETAF_INET6 に対して有効です。

Fn inet_ntoa ルーチンは、インターネットアドレスを受け取り `.' 表記法のアドレスを示す ASCII 文字列を返します。 Fn inet_makeaddr ルーチンはインターネットネットワーク番号と ローカルネットワークアドレスを受け取り、 それを基にしてインターネットアドレスを生成します。 Fn inet_netof と Fn 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 個の部分アドレスだけ指定されると、値はバイトの再調整なしに 直接ネットワークアドレスに保存されます。

`.' 表記法で ``部分'' として供給される数値はすべて、C 言語で指定される 10 進数、8 進数、16 進数の いずれかの形式を取ることができます (すなわち、先行の 0x または 0X は 16 進数を意味し、 先行する 0 は 8 進数を意味し、数値は 10 進数と解釈されます) 。

Fn inet_aton と Fn inet_ntoa 関数は幾分避けるべき関数で、むしろ addr2ascii(3) ファミリが使われます。 しかし、これらの関数はまだ広く実装されていないため、 当面、移植性のあるプログラムはこれらの関数に依存できず、 inet(3) 関数が使われ続けるでしょう。  

索引

診断

Fn inet_addr と Fn inet_network は形式違反の要求に対し INADDR_NONE 定数を返します。  

索引

関連項目

addr2ascii(3), gethostbyname(3), getnetent(3), hosts(5), networks(5)
RFC 2373 July 1998 "IP Version 6 Addressing Architecture"
 

索引

規格

Fn inet_ntop と Fn inet_pton 関数は、 St -xns5.2 に適合しています。 Fn inet_pton 関数は、1 個、2 個もしくは 3 個のドット形式のアドレスには 対応していないことに注意してください。 アドレスは 4 個に分けて、10 進数で指定しなければなりません。 これは Fn inet_aton 関数が受け取ることのできる入力セットよりもせまいものです。  

索引

歴史

これらの関数は BSD 4.2 で登場しました。

 

索引

バグ

INADDR_NONE (0xffffffff) 値は有効なブロードキャストアドレスですが、 Fn inet_addr はこの値を返す時に失敗を示してしまいます。 新しい Fn inet_aton 関数では、この問題は解決されています。 ホストバイトオーダ対ネットワークバイトオーダの問題は混乱しがちです。 Fn inet_ntoa が返す文字列は静的メモリ領域に収められます。

inet_addr は Fa struct in_addr を返す必要があります。


 

索引

Index

名称
ライブラリ
書式
解説
インターネットアドレス
診断
関連項目
規格
歴史
バグ

jman



Time: 07:06:54 GMT, January 12, 2009