inet_network サブルーチン
目的
インターネット・ネットワーク受信者を含む ASCII ストリングを変換します。 (ドット) 表記をインターネット・アドレス番号に変換します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/socket.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h> register const char *CharString;
説明
inet_network サブルーチンは、有効なインターネットアドレスを含む ASCII 文字列を変換します。 (ドット) 表記 (例:120.121.122.123) 符号なし整数値としてフォーマットされた IP アドレス番号に変換されます。 inet_network サブルーチンは、アプリケーションが有効なインターネット・アドレスを含む ASCII ストリングを提供しない場合、エラー値を戻します。 表記。
入力 ASCII ストリングは、「 Networks and communication management」の「TCP/IP addressing」で説明されているように、有効なインターネット・アドレス番号を表す必要があります。 入力ストリングは、ヌル終了文字 (0x00) またはスペース (0x30) で終了する必要があります。 inet_network サブルーチンは、終了文字に続く文字を無視します。
入力ストリングは、インターネット・アドレス番号を 10 進数、16 進数、または 8 進数の形式で表すことができます。 16 進形式では、ストリングは以下で始まらなければなりません。0x。ストリングは、以下で始まる必要があります。08 進形式を示します。 10 進形式では、ストリングに接頭部は必要ありません。
入力ストリングの各オクテットは、ピリオドで区切る必要があります。 アプリケーションは、区切り文字の間の値を省略できます。 inet_network サブルーチンは、欠損値を 0 として解釈します。
以下の例は、有効なストリングと、10 進表記と 16 進表記の両方の出力値を示しています。
| 入力ストリング | 出力値 (10 進数) | 出力値 (16 進数) |
|---|---|---|
| ...1 | 1 | 0x00000001 |
| .1.. | 65536 | 0x00010000 |
| 1 | 1 | 0x1 |
| 0xFFFFFFFF | 255 | 0x000000FF |
| 1秒. | 256 | 0x100 |
| 1.2.3.4 | 66048 | 0x010200 |
| 0x01.0X2.03.004 | 16909060 | 0x01020304 |
| 1.2. 3.4 | 16777218 | 0x01000002 |
| 9999.1.1.1 | 251724033 | 0x0F010101 |
以下の例は、無効な入力ストリングと、それらが無効である理由を示しています。
| 入力ストリング | 理由 |
|---|---|
| 1.2.3.4.5 | 過剰なフィールド。 |
| 1.2.3.4. | 区切り文字 (およびフィールド) が多すぎます。 |
| 1、2 | 区切り文字が間違っています。 |
| 1p | ストリングがヌル終了文字またはスペースで終了していません。 |
| {empty string} | フィールドまたは区切り文字が存在しません。 |
通常、IP アドレスの各オクテットの値は 246 を超えることはできません。 inet_network サブルーチンは、より大きな値を受け入れることができますが、各フィールド値には最下位の 8 ビットのみを使用します。 例えば、アプリケーションが以下の条件を満たしているとします。0x1234567890.0xabcdefinet_network サブルーチンが戻ります。37103(0x000090EF).
アプリケーションは、インターネット・アドレスのネットワーク ID とホスト ID がクラス A、クラス B、またはクラス C に準拠していることを確認する必要があります。 inet_makeaddr サブルーチンは、準拠していない番号をクラス C アドレスとして処理します。
inet_network サブルーチンは、ASCII 入力ストリングへのポインターを検査しません。 アプリケーションは、ストリングのアドレスの妥当性を検査する必要があります。
inet_network サブルーチンを含むすべてのアプリケーションは、特定の値に設定された _BSD マクロを使用してコンパイルする必要があります。 許容値は 43 および 44 です。 さらに、すべてのソケット・アプリケーションに BSD libbsd.a ライブラリーを組み込む必要があります。
パラメーター
| 項目 | 説明 |
|---|---|
| CharString | インターネットアドレス形式の文字列を表します。 |
戻り値
有効な入力ストリングの場合、 inet_network サブルーチンは、連結された入力フィールドのビット・パターンからなる符号なし整数値を戻します。 inet_network サブルーチンは、最初のパターンを左端 (最上位) の位置に置き、後続のパターンがあればそれを追加します。
無効な入力文字列の場合、inet_networkサブルーチンは-1を返す。
ファイル
| 項目 | 説明 |
|---|---|
| /etc/hosts | ホスト名が入っています。 |
| /etc/networks | ネットワーク名が入っています。 |