IPv4 アドレス表現の変換
入力
| IPv4 アドレス | 192.168.1.1 |
|---|
IPv4 アドレス表現の変換
ドット付き十進表記の IPv4 アドレスを入力すると、32 ビット整数、16 進数、ドット付き二進数として表示します。パケットキャプチャの読み取り、アクセスリストの作成、アドレスがどう格納されるかの理解に役立ちます。
入力
IPv4 アドレス
結果
値を入力すると計算結果が表示されます。
各表現
IPv4 アドレスの表現
IPv4 アドレスは、おなじみのドット付き十進表記の下では、ただの 1 つの 32 ビットの数です。この計算は 192.168.1.1 のようなアドレスを受け取り、同じ値を 4 つの表現で一度に表示します。ドット付き十進、ただの整数、16 進数、そしてドット付き二進です。どの形式も正確で損失がありません ── 別の読み手のために同じビットをまとめ直しただけです。ネットワークエンジニアは、パケットキャプチャを読むとき、アクセス制御リストを書くとき、データベースにアドレスを格納するとき、サブネット境界がどこに落ちるかを考えるときに、これらの変換を使います。
ドット付き十進: 人間向けの形式
誰もが見覚えのあるこの表記は、32 ビットをオクテットと呼ばれる 8 ビットの 4 グループに分け、各オクテットを 0 から 255 までの十進数として書き、ドットでつなぎます。アドレス 192.168.1.1 のオクテットは 192、168、1、1 です。ドットは純粋に人間向けの便宜であり、ハードウェアはそれを決して見ず、基盤となるビットだけを見ます。各オクテットは 8 ビットを持つため、その値は 0 (全ビットが 0) から 255 (全ビットが 1) までの範囲をとれます。これが、255 を超えるオクテットが有効なアドレスにならない理由です。
整数形式
4 つのオクテットを 256 進数の各桁とみなし、最も左のオクテットを最上位とします。
結果は常に 0 から までの単一の符号なし整数です。この形式は範囲チェックを安価にします。あるアドレスがブロックに含まれるかを問うことが、1 組の整数比較になり、ドット付き文字列を解析するよりはるかに高速だからです。多くのデータベースやログパイプラインは、まさにこの理由でアドレスをこの形で格納します。
16 進数と二進数
16 進数は同じ整数を 16 進で表し、0x を前に付けます。2 桁の 16 進数がちょうど 1 オクテットを符号化するため、対応はきれいです。各オクテットは固定の 2 文字グループになります。16 進数は、パケットアナライザーや低レベルのネットワークコードが表示する形です。
二進形式は 32 ビットすべてを書き出し、同じ 4 つのオクテットにまとめます。これがサブネットマスクや CIDR プレフィックスが実際に作用する表現です。/24 のようなプレフィックス長は、最初の 24 ビットがネットワークを識別し、最後の 8 ビットがホストを識別することを意味します ── アドレスを 1 ビットずつ書き出して初めてはっきり見える境界です。
計算例
192.168.1.1 を考えます。各オクテットを 8 ビットの二進数に変換すると次のようになります。
19216811=11000000=10101000=00000001=00000001オクテットをドットでつなぐと、二進形式 11000000.10101000.00000001.00000001 が得られます。ビットを 1 つの整数にまとめると次のようになります。
16 進ではこの整数は 0xC0A80101 です ── そして二進数からそのまま読み取れます。各オクテット (192、168、1、1) が 16 進ペア C0、A8、01、01 に対応するからです。4 つの表現はすべて 1 つのアドレスを表しており、変わるのはまとめ方だけです。
関連する計算
アドレスを CIDR プレフィックスでネットワーク部とホスト部に分けるには、サブネットの計算 を参照してください。IPv4 という文脈を超えて任意の数を十進・二進・16 進の間で変換するには、基数変換ツール が基数の算術を扱います。
よくある質問 (FAQ)
なぜ IPv4 アドレスを他の形式に変換するのですか?
ドット付き十進表記は人が読むには分かりやすいものですが、整数の比較は高速で、範囲チェックも単純な算術になるため、コンピューター、ログファイル、データベースはアドレスをそのままの整数として格納・比較することがよくあります。
二進形式はサブネットマスクや CIDR プレフィックスが実際に作用する形であり、16 進形式はパケットヘッダーや多くのデバッグツールでアドレスが現れる形です。4 つを並べて見ると、それらが別の服を着た 1 つの数であることがはっきり分かります。
ドット付き十進表記とは何ですか?
IPv4 アドレスは 32 ビットの数です。ドット付き十進表記はその 32 ビットをオクテットと呼ばれる 8 ビットの 4 グループに分け、各オクテットを 0 から 255 までの十進数として書き、ドットでつなぎます (192.168.1.1 のように)。これはビットを書き表す純粋に人間向けの方法に過ぎません。ドットはハードウェアにとって何の意味も持たず、ハードウェアは 32 ビットの値しか見ません。
アドレスはどのように 1 つの整数に変換されますか?
各オクテットは 256 進数の各桁であり、最も左のオクテットが最上位です。整数は octet1 × 256³ + octet2 × 256² + octet3 × 256 + octet4 となります。192.168.1.1 では 192 × 16777216 + 168 × 65536 + 1 × 256 + 1 = 3232235777 です。結果は常に 0 から 4294967295 の間、つまり 32 ビット符号なし整数の全範囲に収まります。
16 進形式と二進形式はどこで使われますか?
パケットアナライザー、低レベルのネットワークコード、多くのルーターの表示は、2 桁の 16 進数が 1 オクテットにきれいに対応するため、アドレスを 16 進数で表示します。二進形式はサブネットを考えるときに重要になります。/24 のようなプレフィックス長は最初の 24 ビットがネットワークを識別することを意味し、そのビット境界はアドレスを二進数で書き出して初めてはっきり見えます。