16進数形式のIPアドレス
IPv4アドレスが16進数でどのように表現されるかを学びます。パケットキャプチャやネットワークプログラミングで使用されるドット付き10進表記とhex表記の間の変換方法を解説します。
Hex
C0 A8 01 01
ASCII
192.168.1.1
詳細な説明
IPv4アドレスは32ビットの数値で、4つの10進オクテット(おなじみのドット表記)、単一の32ビット整数、または4つの16進バイトとして表現できます。ネットワークパケットキャプチャ、hexエディタ、低レベルネットワークプログラミングでは、IPアドレスは生のhex形式で表示されます。この変換の理解はネットワークトラフィックの分析に不可欠です。
192.168.1.1をhexに変換:
ドット付き10進IPアドレスの各オクテットを独立して2桁のhex値に変換します:
192→C0(12 × 16 + 0 = 192)168→A8(10 × 16 + 8 = 168)1→011→01
結果: C0 A8 01 01
一般的なIPアドレスのhex表現:
| IPアドレス | Hex | 用途 |
|---|---|---|
| 0.0.0.0 | 00 00 00 00 |
デフォルト/未指定 |
| 127.0.0.1 | 7F 00 00 01 |
ループバック(localhost) |
| 192.168.1.1 | C0 A8 01 01 |
一般的なルーターゲートウェイ |
| 10.0.0.1 | 0A 00 00 01 |
プライベートネットワーク |
| 255.255.255.0 | FF FF FF 00 |
/24サブネットマスク |
| 255.255.255.255 | FF FF FF FF |
ブロードキャスト |
| 8.8.8.8 | 08 08 08 08 |
Google DNS |
hexでのプライベートIP範囲の認識:
- 10.0.0.0/8:
0Aで始まる — hex0Aで始まるアドレスはクラスAプライベート範囲 - 172.16.0.0/12:
AC 10からAC 1Fで始まる — hex第2バイトが10から1F - 192.168.0.0/16:
C0 A8で始まる — パケットキャプチャで最もよく見られる2バイトプレフィックス
パケットヘッダー内のIPアドレス:
生のIPv4パケットでは、送信元IPアドレスはIPヘッダーの先頭からオフセット12-15に、宛先IPアドレスはオフセット16-19にあります。hexエディタでパケットキャプチャを表示する際、これらの4バイトフィールドを直接読み取れます。
URLとAPIでのhex表現:
一部のシステムはIPアドレスを単一のhex数として表現します。IP 192.168.1.1を32ビットhex整数として表すと0xC0A80101です。このコンパクト形式はデータベースストレージ、ファイアウォールルール、ネットワークプログラミングAPIで使用されることがあります。
IPv6 — ネイティブに16進数:
IPv6アドレスは128ビットで、ネイティブにhex表記で記述されます(例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。4つのhex桁の各グループは16ビットを表します。IPv4のhexからIPへの変換の理解は、IPv6アドレスの読み取りに自然に拡張されます。
ユースケース
ネットワークエンジニアは、WiresharkやtcpdumpでRAWパケットキャプチャを分析する際、ファイアウォールルールの記述時、ソケットレベルでのネットワークプログラミングのデバッグ時にIPアドレスをhexとの間で変換します。