IP・ネットワーク

IPアドレス変換

1行に1つの値を入力。入力形式を選ぶと、同じアドレスの各表現をまとめて確認できます。

IPアドレス変換

入力値(1行に1つ)

変換レポート

変換はこのブラウザー内で行い、入力アドレスへの問い合わせはしません。

変換オプション

ネットワークバイト順・符号なし整数。アドレス形式ではIPv4/IPv6を識別し、数値では選択した種別を使います。

空行を除き100行、全体65,536 UTF-16単位、1行256単位まで。JSONはエラー行も含みます。

入力または設定が変わりました。再変換後に出力できます。

ログのアドレスとデータベースの整数が一致するかを確かめるときに、IPアドレス変換が役立ちます。数値の1は0.0.0.1にも::1にもなり得ます。入力形式とアドレス種別を指定してから読み取れば、表記の違いと値の違いを区別できます。

IPアドレス変換で確認できること

末尾の桁まで残す

IPアドレス変換は正確な整数演算を使います。IPv6を浮動小数点に変換せず、同じ128ビットから10進・16進・2進の結果を求めます。JSONには数値を文字列として保存するため、受け取る側でも桁を維持できます。

色分けした4つのバイト群が、連続するビット列と短い値の表現に対応している図。

長い表記と短い表記を照合する

IPv6展開では4桁の組を8つ表示し、IPv6圧縮では各組の先頭のゼロと最長の連続ゼロ列を省きます。同じ長さの候補は左側を採用します。元の入力を残したまま、二つの形を比較できます。

8つのIPv6の組から連続したゼロの部分をまとめ、短い表記へ変える図。

数字の読み方を先に決める

01

整数にはアドレス種別も指定する

通常のアドレス形式ならIPv4とIPv6を自動認識します。IP整数変換の入力では10進・16進・2進に加え、32ビットか128ビットを選んでください。アドレス形式では数値用の種別選択は無効です。

02

エラーの行番号をたどる

空行は処理対象から外れますが、後続の物理行番号は変わりません。不正な行があっても残りを変換します。表示は最初の50件から追加できますが、JSONには常に全件が含まれます。

03

更新のタイミングを選ぶ

自動変換は編集が止まって350ms後に実行します。オフにすると変換ボタンかCtrl/Cmd + Enterを使えます。入力変更後は古い結果を出力できません。サンプルと消去はプレビュー後に適用し、1回取り消せます。

表記とビット列を照合

IPアドレス進数変換を一つの結果で

IPv4はネットワークバイト順の符号なし32ビット整数です。192.0.2.1は3221225985になり、負数にはなりません。数値から戻す場合は選択したビット幅を超える値を拒否し、下位ビットだけを残す処理はしません。

128ビットの長さが見える

2進数はIPv4なら32桁、IPv6なら128桁を表示します。16進数も8桁または32桁までゼロを補います。圧縮形は小文字で、ゼロの組が一つだけなら省略せず、全ゼロなら::になります。

マップされたIPv4を区別する

IPv4からは::ffff:形式を生成します。IPv6からIPv4を取り出すのは::ffff:0:0/96の範囲に限ります。それ以外は通常のIPv6として数値化し、対応するIPv4を推測しません。

入力できる範囲と制限

アドレスだけを入力する
URL、ドメイン、ポート、角括弧、CIDR、zone IDは除去せず拒否します。各行の前後の空白は無視しますが、内部の空白はエラーです。IPv6の末尾の正しい組をポートと推測することもありません。
IPv4は厳密なドット区切り
0〜255の10進数を4つ使います。単独の0以外で先頭にゼロを付けたものや、短縮IPv4、8進数、混合進数は扱いません。IPv6の各16進グループの先頭ゼロは許可します。
数値は符号なしで読む
小数、符号、指数、内部の区切りは使えません。16進数の0x、2進数の0bは省略可能です。常に上位バイトから読むため、リトルエンディアンのダンプを自動で入れ替える機能はありません。
構文検証と疎通確認は別
DNSやPing、位置情報、サブネットの計算は行いません。正しい表記でも通信できるとは限りません。IPv4マップ表記はNAT64やトンネルの設定ではなく、任意のIPv6をIPv4へ変える仕組みでもありません。
失敗した入力を残す
上限は空行を除き100行、全体65,536 UTF-16単位、1行256単位です。全体の上限を超えると出力を停止し、長すぎる1行はエラーとして残します。ファイル読み込み、並べ替え、重複削除、成功行だけの出力はありません。

IPアドレス変換のよくある質問

IPを整数で保存するのはどんなときですか?

データベースで値を比較したり、ログの別表記と照合したりする場合に使います。IPv4は32ビット、IPv6は128ビットの符号なし値です。保存先が浮動小数点しか扱えない場合は、このJSONの文字列をそのまま保持してください。

なぜIPv6の形が2つあるのですか?

展開形と圧縮形は同じアドレスの別表記です。前者は8組をすべて4桁で書き、後者は先頭ゼロや連続ゼロの省略規則を使います。文字列の見た目だけで異なるアドレスと判断しないでください。

入力は検証されますか?

はい。IPv4の各値、IPv6の組数と圧縮記号、数値入力の進数と範囲を検証します。エラー行には元の行番号が残ります。ただし、形式が正しいことと実際にそのホストへ接続できることは別です。

IPv4アドレスをIPv6に変換するには?

IPv4を入力すると::ffff:192.0.2.1のようなマップ形式を表示します。これは同じIPv4をIPv6の枠内で表す方法です。ネットワークがIPv6対応になるわけではなく、接続先の通常のIPv6アドレスを発見するものでもありません。

IP番号をIPv6アドレスに変換するにはどうすればよいですか?

入力形式を10進数にし、アドレス種別をIPv6にします。0から340282366920938463463374607431768211455まで扱えます。小さい値もIPv6として読めるため、1は::1になります。

確認したいアドレス表記がありますか?

別のアドレスを確認する

IPアドレス変換で表記と整数を照合しましょう。保存された数値を戻す前に、元のデータが32ビットか128ビットかを確認してください。