IPv4 アドレス変換

IPv4 アドレスをドット付き10進・32ビット整数・16進・2進の間で相互変換し、in-addr.arpa 形式も表示。

1つのアドレス、すべての表現。 IPv4 アドレスをドット付き10進・32ビット整数・16進・2進の各形式で相互変換し、逆引き DNS の in-addr.arpa 名も表示。ブラウザ内の純粋な計算です。

10進(uint32)
16進
2進
in-addr.arpa

1 つのアドレス、4 つの表記

ドットの裏にある 32 ビット

IPv4 アドレスの実体は 1 つの 32 ビット符号なし整数です。見慣れたドット区切り表記は表示上の約束にすぎません。192.168.1.1 は 8 ビットずつ 4 つに区切って 10 進で書きドットでつないだもので、実際の値である 3232235777 よりはるかに読みやすくなっています。このページのどの表記も同じ数値が服を着替えただけなので、相互変換で情報が失われることはありません。

10 進形式はその整数をそのまま書き出したものです。16 進形式は 32 ビットを 8 桁の 16 進数にまとめます。2 桁がちょうど 1 オクテットに対応するため扱いやすく、0xC0A80101 は C0、A8、01、01 にきれいに分割できます。2 進形式はビット境界を可視化するので、サブネットマスクを検討するときに役立ちます。

それぞれの表記が使われる場面

整数形式は、アドレスを安価に保存・比較したい場面で使われます。データベースが好むのは INT UNSIGNED のソートと範囲スキャンが文字列より速いからで、WHERE ip BETWEEN x AND y がインデックス探索になります。ログ基盤や GeoIP テーブルが範囲を整数のペアで配布するのも同じ理由です。

16 進はパケットダンプ、カーネル構造体、古い設定ファイル形式で見かけます。2 進は主に学習とデバッグ用です。アドレスとマスクを 2 進で並べれば、ネットワーク部とホスト部の区切りが抽象的でなくなります。

逆引き DNS と in-addr.arpa

正引き DNS は名前をアドレスに変換し、逆引きはその反対を行います。DNS の権限委譲は右から左へ細分化されるのに対し IPv4 は左から右へ細分化されるため、オクテットを逆順に並べる必要があります。192.168.1.11.1.168.192.in-addr.arpa となり、その名前の PTR レコードがホスト名を返します。メールサーバーはこれを日常的に確認しており、PTR の欠落や不一致は正当なメールがスパム判定される典型的な原因です。

オープンソースに関する注記:バニラ JavaScript で実装。サードパーティライブラリは使用していません。

よくある質問

10 進形式は何に使いますか?
アドレスを 1 つの符号なし 32 ビット整数として読んだ値です。整数の範囲比較は低コストなので、データベースやファイアウォール、地域 IP テーブルではこの形式で保存されることがよくあります。
なぜ 255.255.255.255 が 4294967295 になるのですか?
変換を符号なしで行っているためです。結果を符号付き 32 ビット整数として扱う言語では同じアドレスが -1 と表示されますが、本ツールは常に符号なしの値を示します。
in-addr.arpa 形式とは何ですか?
逆引き DNS で使われる名前です。各オクテットを逆順に並べて接尾辞を付けるので、192.168.1.1 は 1.1.168.192.in-addr.arpa になります。
なぜ 2 進表記は 4 つに区切られているのですか?
各グループが 1 オクテットだからです。ドットで区切ると、サブネットマスクがどのビットでアドレスを切るのかが一目で分かります。2 進表記を読む理由はたいていそこにあります。
IPv6 にも対応していますか?
いいえ、この変換ツールは IPv4 専用です。IPv6 アドレスは 128 ビットで、ヘクステットと :: 圧縮を用いる別の表記法を使います。
サーバーに何か送信されますか?
いいえ。変換は純粋な算術演算としてブラウザ内で完結するため、貼り付けたアドレスがページの外に出ることはありません。