IPv6→IPv4変換ツール

IPv6からIPv4への変換ツールです。IPv6アドレスを貼り付けると、中に含まれるIPv4アドレスを取り出し、その32ビットがどこにあり、どの形式で埋め込まれたかを表示します。ほとんどのIPv6アドレスにはIPv4がまったく含まれておらず、その場合はその旨を表示します。

RFC 4291、6052、3056、4380、5214に基づくデコーダー · 各RFC自身の例で検証済み · ブラウザー内で動作

読み取った形式: IPv6

128ビットのどこにIPv4が入っているかIPv4射影アドレス
例

IPv6はどの書き方でも入力できます。角かっこ、ポート、%ゾーン、/プレフィックス付きでも構いません。変換はブラウザー内で行い、何も送信しません。

IPv4を含むIPv4射影アドレス使用中

203.0.113.5

::ffff:0:0/96 · RFC 4291

サーバーのログで見つけたアドレスですか?この訪問者はIPv4で203.0.113.5からアクセスしています:デュアルスタックのサーバーは、IPv4のクライアントをこの形で記録します。

IPv4
省略表記(RFC 5952)
完全表記
IPv4の数値
10進数 · 16進数 · 2進数
逆引きDNS名

IPv6をIPv4に変換する方法は?

IPv6アドレスをIPv4に変換できるのは、その中にIPv4アドレスがすでに書き込まれている場合だけです:アドレスの先頭のビットから形式を判断し、その形式がIPv4用に確保している32ビットを取り出して、4つの10進数として読みます。

変換ツールはこの3つの手順をすべて行います。::ffff:203.0.113.5では、先頭の96ビットがIPv4射影アドレスのプレフィックス::ffff:0:0/96(RFC 4291)なので、最後の32ビットがIPv4アドレスです:16進数ではcb00:7105で、cb = 203、00 = 0、71 = 113、05 = 5です。

他の形式では、32ビットは別の場所にあります:6to4では2002:の直後、ネットワーク独自のNAT64プレフィックスでは読み飛ばすオクテットの前後、Teredoでは末尾にビットを反転した形で入っています。ツールのリボンには、入力した各アドレスでの位置が表示されます。

1プレフィックスを読む::ffff:0:0/96 IPv4射影アドレスのプレフィックス
232ビットを取り出す96–127 · cb00:7105
3各バイトを10進数にcb20300071113055203.0.113.5
サーバーのログにあったIPv4射影アドレスで見る3つの手順です。ドキュメント用アドレス(RFC 5737)を使っています。
IPv6→IPv4変換ツールでTeredoアドレスを解読し、サーバーとクライアントのIPv4アドレスを取り出した画面IPv6→IPv4変換ツールでTeredoアドレスを解読し、サーバーとクライアントのIPv4アドレスを取り出した画面1つの入力欄、どんな書き方でも角かっこ、ポート、ゾーン、プレフィックス、URL、逆引き名も読み取り、どう読んだかを入力欄の下の行に表示します。プレフィックス先頭のビットが形式を示します。ここではRFC 4380で定められたTeredoの2001::/32です。反転したビットを元に戻すTeredoはクライアントのポートとアドレス(IPv4)をビット反転して格納します。その下の行が本来の値です。IPv4アドレス点灯した各バイトを10進数で示し、それらをまとめるかっこの下にアドレス全体を表示します。判定IPv4を含むかどうか、形式、その形式の現在の状況、そしてあなたにとっての意味。すべての形式をコピー可能サーバー、ポート、フラグ、正規のIPv6表記、完全表記、逆引きDNS名。
Teredoアドレスの分解:サーバー、フラグ、クライアントのポートとIPv4。後の2つはビットを反転して格納されています。

すべてのIPv6アドレスにIPv4アドレスが含まれていますか?

いいえ。通常のIPv6アドレスにIPv4アドレスはまったく含まれていません。IPv4を埋め込むのは一部の形式だけで、それぞれ決まったプレフィックスかインターフェースIDで見分けられます。

RFC 4291は、プレフィックスが定める以上の構造をIPv6アドレスから読み取らないようソフトウェアに求めています。つまり、2001:db8:85a3::8a2e:370:7334をIPv4アドレスに変換するツールは、存在しないアドレスを作り出しています。IPv4アドレスを含む形式と、その32ビットの位置を図に示します。

現在よく見かけるのは2つだけです:ソフトウェア内部のIPv4射影アドレスと、IPv6専用ネットワークのNAT64アドレスです。6to4とTeredoは、実際の通信から事実上姿を消しています。

各形式がIPv4アドレス192.0.2.33をどこに格納するかを、実際の比率で示しています:16進数32桁、1桁4ビットです。

ログに::ffff:で始まるアドレスが記録されるのはなぜ?

サーバーが1つのIPv6ソケットで両方のプロトコルを待ち受けていて、OSがIPv4の訪問者をIPv4射影アドレスとして渡すためです:::ffff:203.0.113.5はIPv4の訪問者203.0.113.5であり、IPv6の訪問者ではありません。

これはRFC 3493のデュアルスタックソケットです。射影形式はソフトウェアの内部にしか存在しません:IANAは::ffff:0:0/96を転送不可かつグローバル到達不可としているため、インターネット上のパケットがこのアドレスを運ぶことはありません。

その訪問者を報告したりブロックしたりするには、通常のIPv4アドレスを使います。表示の仕方はツールによって異なります:Goの古いnetパッケージは203.0.113.5と表示し、net/netipとPython 3.13は::ffff:203.0.113.5と表示するため、同じ訪問者が両方の形で現れることがあります。

IPv4の訪問者203.0.113.5IPv4
IPv6の訪問者2001:db8::7IPv6
あなたのサーバー[::]:443IPv6ソケット1つ
access.log
::ffff:203.0.113.5 - - [24/Oct/2026:09:14:02 +0000] "GET / HTTP/1.1" 200
2001:db8::7 - - [24/Oct/2026:09:14:05 +0000] "GET / HTTP/2" 200
1つのソケットに2つのアドレスファミリー:OSはIPv4の訪問者を::ffff:203.0.113.5と記録します。

NAT64はIPv4アドレスをどのようにIPv6に入れるのですか?

NAT64のネットワークは、IPv4アドレスをプレフィックス(既定は64:ff9b::/96)に書き込むことで、すべてのIPv4ホストにIPv6アドレスを与えます。192.0.2.33なら64:ff9b::c000:221になります。

IPv6専用ネットワークでは、Aレコードしか持たないホスト名に対して、DNS64がこの方法で作ったAAAAレコードを返し、変換装置がそのアドレス宛てのパケットをIPv4に変換します。端末はipv4only.arpaを問い合わせて、ネットワークのプレフィックスを見つけます。

ネットワークは32、40、48、56、64、96ビットの独自のプレフィックスを使うこともできます(RFC 6052)。その場合ビット64–71は常にゼロのままなので、/40、/48、/56ではIPv4アドレスがこのオクテットの前後に分かれます。どの長さを選んだかはアドレスだけでは分からないため、ツールが長さを尋ねます。ウェルノウンプレフィックスにプライベートIPv4アドレスを入れてはなりません。

RFC 6052自身が挙げる192.0.2.33の例:プレフィックスのビットは白、IPv4は緑、uオクテットは斜線です。

Teredoアドレスとは?

Teredoアドレスは、IPv4のNATの内側にあるコンピューターがUDPでトンネルして使うIPv6アドレスです。TeredoサーバーのIPv4アドレスと、ビットを反転したクライアントのパブリックIPv4アドレスとポートを含みます。

5つの部分からなります:プレフィックス2001::/32、ビット32–63のサーバーのIPv4アドレス、16ビットのフラグ、クライアントのNATが割り当てたUDPポート、クライアントのパブリックIPv4アドレスで、最後の2つはすべてのビットが反転されています(RFC 4380)。

RFC 5991以降、16ビットのフラグのうち12ビットはランダムなので、0x8000以外のフラグも正常です。Teredoは現在のインターネットからほぼ姿を消しましたが、古いログやファイアウォールのルールには今もそのアドレスが残っています。

2001:0:c000:201:8000:63bf:34ff:8efaの解析結果:サーバー192.0.2.1、コーンフラグ、ポート40000、クライアント203.0.113.5。

6to4アドレスとISATAPアドレスとは?

6to4とISATAPは、IPv4ネットワーク上でIPv6を運ぶ初期の方式で、どちらもIPv6アドレスにIPv4アドレスを書き込みます:6to4は2002:の直後に、ISATAPは5efeに続くインターフェースIDに入れます。

6to4サイトのプレフィックスは、2002:の後にそのサイトのパブリックIPv4アドレスを続けたものです。192.0.2.33なら2002:c000:221::/48を持っていました。RFC 7526が廃止したのは、インターネット上で6to4を機能させていたエニーキャストのリレーであり、形式そのものではありません。

ISATAPは、任意の/64プレフィックスの下で、最後の64ビットを0:5efe(パブリックIPv4アドレスの場合は200:5efe)と、それに続くIPv4アドレスで構成します。

2つの形式と、その通信が消えていった様子(GoogleのIPv6統計)。

IPv6を使っているときに自分のIPv4アドレスを調べるには?

IPv4アドレスは別に調べます:IPv4とIPv6のアドレスは互いに独立した2つのアドレスで、IPv6アドレスにIPv4アドレスは含まれていません。自分のIPアドレス確認では両方を並べて表示します。

デュアルスタックの接続には、IPv4アドレス(プロバイダーのNATで共有されていることが多い)とIPv6プレフィックスがあり、各Webサイトにはブラウザーが選んだ方で接続します。この変換ツールが役立つのは、ログにある射影アドレスのような、埋め込み形式のアドレスだけです。

IPv6専用のモバイルネットワークでは、アプリのIPv4通信はプロバイダーの464XLATを通り、Webサイトから見えるIPv4アドレスはプロバイダーの変換装置のものです。

2つのアドレス、2つの経路:一方のアドレスからもう一方を割り出すことはできません。ドキュメント用アドレスを使っています。

IPv6からIPv4に切り替える方法は?

IPv6をオフにするのではなく、IPv4を優先するように設定します:ホスト名にIPv4とIPv6の両方のアドレスがあると、コンピューターはまずIPv6を試します。アドレス選択テーブルでIPv4の優先度を上げれば、IPv6を動かしたままこの順番を変えられます。

WindowsではMicrosoftがまさにこの方法を推奨しており、IPv6の無効化やバインド解除は、Windowsの一部が動作しなくなるおそれがあるとして勧めていません。Macでは、システム設定にIPv6をオフにする項目がありません。Linuxでは/etc/gai.confに1行追加すれば設定できますが、Chromeはアドレスを自分で並べ替えます。

1つのコマンドだけIPv4で使うなら、ほとんどのツールに-4オプションがあります。タブには各OSの手順を、各ベンダーの公式ドキュメントで確認した内容で示しています。

アドレス選択テーブル

既定IPv4を優先
IPv6 (::/0)4040
IPv4 (::ffff:0:0/96)35100

RFC 6724 §2.1, §10.3

管理者として実行したコマンドプロンプトで実行し、再起動します:
› reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" /v DisabledComponents /t REG_DWORD /d 32 /f
確認:::ffff:0:0/96の行が::/0より上位になります
› netsh interface ipv6 show prefixpolicies
1つのコマンドだけIPv4で使う場合:
› ping /4 example.com
› tracert /4 example.com
システム設定にはIPv6をオフにする項目がありません。次のコマンドで1つのサービスだけオフにします:
› networksetup -listallnetworkservices
› networksetup -setv6off "Wi-Fi"
元に戻す:
› networksetup -setv6automatic "Wi-Fi"
Macのpingは最初からIPv4専用です(ping -4はエラーになります)。
/etc/gai.confに追加し、glibcの他の既定の行もコピーします:precedenceの行を1つ書くと、テーブル全体が置き換わります。
› precedence ::ffff:0:0/96 100
1つのコマンドだけIPv4で使う場合:
› ping -4 example.com
Chromeはgai.confに従わないことがあります:アドレスを自分で並べ替えるためです。
about:configで:
› network.dns.disableIPv6 = true
Chromeにはこの設定がありません。Windowsではシステムの優先順位に従います。
› curl -4 https://example.com
› wget -4 https://example.com
› ssh -4 user@example.com
› nslookup -type=A example.com
dig -4はdigがDNSサーバーに接続する方法を変えるだけです:代わりにAレコードを問い合わせます。
› dig A example.com
IPv6をオフにせずにIPv4を優先する:選択テーブルと、各OSの手順(各ベンダーの公式ドキュメントに基づく)です。

よくある質問

どんなIPv6アドレスでもIPv4に変換できますか?

いいえ。IPv6アドレスをIPv4に変換できるのは、IPv4射影アドレス、NAT64、6to4、Teredo、ISATAPの各形式のように、IPv4アドレスが書き込まれている場合だけです。2001:db8:85a3::8a2e:370:7334のようなネイティブのアドレスにIPv4アドレスは含まれておらず、これに対してIPv4を表示するツールは値をでっち上げています。WebサイトのIPv4アドレスを知りたい場合は、代わりにAレコードを調べてください。

::ffff:192.0.2.1に含まれるIPv4アドレスは?

192.0.2.1です。プレフィックス::ffff:0:0/96はIPv4射影アドレスを示します:ゼロのビットが80個、1のビットが16個続き、最後の32ビットにIPv4アドレスが入ります。同じアドレスを16進数で書くと::ffff:c000:201です。c0が192、00が0、02が2、01が1だからです。1つのIPv6ソケットで両方のプロトコルを扱うソフトウェアは、IPv4の相手をこの形で表示します。

64:ff9b::で始まるアドレスをIPv4に変換するには?

最後の32ビットを取り出します。64:ff9b::/96はNAT64のウェルノウンプレフィックスなので、64:ff9b::c000:221はIPv4ホスト192.0.2.33を表し、64:ff9b::192.0.2.33とも書けます。このアドレスはIPv6専用ネットワークで見られ、DNS64がホストのAレコードから作り、NAT64変換装置が通信をIPv4へ中継します。このプレフィックスにプライベートIPv4アドレスを入れてはなりません。

変換ツールがネットワークのNAT64プレフィックス長を尋ねるのはなぜですか?

ネットワークは32、40、48、56、64、96ビットの独自のNAT64プレフィックスを使うことができ、IPv4アドレスの位置はその長さで決まるからです。たとえば/48では、IPv4アドレスは常にゼロであるビット64〜71の前後に分かれます。長さはアドレスだけでは分からず、64:ff9b:1::/48ブロックについてはRFC 8215が推測を禁じているため、ツールは候補をすべて表示します。

IPv4互換IPv6アドレスとは何ですか?

96個のゼロのビットの後、最後の32ビットにIPv4アドレスを入れる古い形式(::/96)で、::192.0.2.1のように書きます。RFC 4291で非推奨となり、現在の移行技術では使われていないため、目にするのはおもに古い設定やファイアウォールのエクスポートです。この変換ツールは今も読み取って非推奨と表示しますが、::や::1をIPv4として扱うことはありません。

PythonでIPv6アドレスからIPv4アドレスを取り出すには?

ipaddressモジュールを使います。IPv6Addressの.ipv4_mappedは::ffff:0:0/96に含まれるIPv4アドレスを、.sixtofourは2002::/16に含まれるものを、.teredoは2001::/32に含まれるサーバーとクライアントのアドレスの組を返し、それ以外のアドレスではいずれもNoneです。NAT64やISATAP用のプロパティはないため、この変換ツールと同じように、該当する32ビットを自分で取り出します。

アドレスを変換すると接続が変わりますか?

いいえ。変換ツールは入力した文字列を読み、その中に書かれている内容を表示するだけです。コンピューターやネットワークの設定は何も変わらず、どこにも何も送信されません。実際にIPv6からIPv4に変更して使いたい場合は、IPv4を優先する方法のセクションのとおり、コンピューターのアドレスの優先順位を変更します。接続中のIPv4アドレスを見るには、自分のIPアドレス確認を開いてください。

WindowsでIPv6よりIPv4を優先するには?

管理者として実行したコマンドプロンプトから、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parametersのレジストリ値DisabledComponentsを0x20に設定して再起動します。MicrosoftはIPv6を無効にする代わりにこの方法を推奨しています。netsh interface ipv6 show prefixpoliciesで確認し、::ffff:0:0/96の行が::/0より上位にあれば設定できています。1つのコマンドだけなら、ping /4やtracert /4のように指定すればIPv4のみを使います。アダプターのIPv6のチェックを外すことは、Microsoftが勧めていません。

6to4やTeredoのアドレスを今ほとんど見かけないのはなぜですか?

リレーやサーバーがほぼすべての場所で停止されたためです。Googleの計測では、2008年9月にはIPv6利用者の約3分の2が6to4かTeredo経由でGoogleにアクセスしていましたが、2021年7月以降はゼロです。RFC 7526は6to4のエニーキャストのリレーを廃止しましたが、2002::/16の形式そのものは廃止していません。これらのアドレスは今も古いログ、ファイアウォールのルール、ドキュメントで見かけることがあります。

貼り付けたアドレスはサーバーに送信されますか?

いいえ。変換はページ自身のコードによってブラウザー内で行われるため、入力するそばから結果が表示されます。コピーしたリンクでは、アドレスはURLの#の後に入ります。ブラウザーがサーバーに送ることのない部分なので、リンクを開いた人にも同じ結果が表示されます。ページのスクリプトを読み込めなかった場合に限り、変換ボタンは通常のページのリクエストに切り替わります。何も保存されません。