IPv4→IPv6変換ツール
IPv4からIPv6への変換ツールです。IPv4アドレスを入力すると、それを含むすべてのIPv6アドレスを表示します。ログで見かけるIPv4射影アドレスからNAT64、6to4まで、RFC 5952の表記と完全表記で示し、それぞれが「使用中」「現在はまれ」「非推奨」のどれに当たるかも示します。
読み取った形式: ドット付き10進表記
ドット付き10進表記、1つの数値(3221225985)、16進数、URLのどれでも入力できます。変換はブラウザー内で行い、何も送信しません。
IPv4をIPv6に変換する方法は?
IPv4アドレスの32ビットを16進数の2つのグループで書き、IPv6の形式がそれを置く位置に入れます:一般的なIPv4射影アドレスでは::ffff:の後なので、192.0.2.33は::ffff:c000:221になり、::ffff:192.0.2.33と書きます。
10進数の各部分が16進数2桁になり(192 = c0、0 = 00、2 = 02、33 = 21)、その4組で16ビットのグループが2つできます。RFC 5952は、ビットの意味が分かるように、::ffff:の後はドット付きの形のまま書くことを推奨しています。
変わるのはアドレスの書き方だけです。これで端末にIPv6アドレスやIPv6接続が与えられるわけではありません。それらはネットワークから提供されます。
c00002023321
16進数にしたIPv4192.0.2.33はc0 00 02 21:どのIPv6形式にも入る8桁です。ビットの行き先同じ8桁が、射影アドレスとNAT64ではビット96–127に、6to4ではビット16–47に入ります。今も使われている?使用中、現在はまれ、非推奨のいずれか。RFCと通信量のデータに基づきます。ネットワークのプレフィックスNAT64プレフィックスと長さを入力すると、変換装置が使うアドレスが分かります。省略か完全かRFC 5952の表記と、その下にもう一方の書き方。スイッチ1つで32桁すべてを表示します。どのIPv6形式を使えばよいですか?
ソフトウェア内(ソケット、ログ、データベース)ではIPv4射影アドレスを、IPv6専用ネットワークではネットワークのNAT64プレフィックスを使います。その他の形式は、現在はまれか廃止されています。
射影アドレスがネットワーク上に現れることはありません。NAT64アドレスは現れ、ウェルノウンプレフィックス64:ff9b::/96にはグローバルなIPv4アドレスしか入れてはなりません(RFC 6052)。6to4にもパブリックIPv4アドレスが必要です。
IPv4互換アドレスは非推奨で、SIITのIPv4-translatedプレフィックスはRFC 6052のプレフィックスに取って代わられました。
| 形式 | 用途 | 状態 | 192.0.2.33の変換結果 |
|---|---|---|---|
| IPv4射影アドレスRFC 4291 | ソケット、ログ、データベース | 使用中 | ::ffff:192.0.2.33 |
| NAT64、ウェルノウンプレフィックスRFC 6052 | IPv6専用ネットワークからIPv4への接続 | 使用中 | 64:ff9b::c000:221 |
| NAT64、ローカル用途ブロックRFC 8215 | 64:ff9b:1::/48内で運用する独自のNAT64 | 使用中 | 64:ff9b:1::c000:221 |
| 6to4RFC 3056 | 自動トンネル、現在はまれ | 現在はまれ | 2002:c000:221::/48 |
| ISATAPRFC 5214 | 1つのサイト内のトンネル、現在はまれ | 現在はまれ | fe80::5efe:c000:221 |
| IPv4-translatedRFC 2765 | 旧式のステートレス変換(SIIT) | 現在はまれ | ::ffff:0:192.0.2.33 |
| IPv4互換アドレスRFC 4291 | 用途なし:廃止済み | 非推奨 | ::c000:221 |
IPv4射影アドレス(IPv4-mapped IPv6アドレス)とは?
IPv4アドレスをIPv6アドレスとして書いたもので、ゼロのビット80個、1のビット16個、続いて32ビットのIPv4アドレスからなります(::ffff:0:0/96)。これにより、IPv6ソケット1つで動くソフトウェアがIPv4の相手も扱えます。
射影アドレスはソフトウェアの内部にしか存在せず、IANAはこのブロックを転送不可としています。これにはセキュリティ上の側面があります:::ffff:127.0.0.1からのパケットが、そのマシン自身からの通信だけを通すためのチェックを通過してしまうことがあるため、フィルターは比較の前に射影を解除する必要があります(RFC 4942)。
データベースもこれを認識します:MySQLのIS_IPV4_MAPPED()はドット付きと16進数のどちらの末尾も受け付け、PostgreSQLはIPv6とIPv4の混在表記で表示します。
0000:0000:0000:0000:00001のビット16個ffffIPv4アドレス、32ビット192.0.2.33accept() → ::ffff:192.0.2.33IPv4からIPv6への移行はどのように進むのですか?
ネットワークは両方のプロトコルを並行して運用し(デュアルスタック)、IPv6専用ネットワークは変換によってIPv4のインターネットに到達します:DNS64と組み合わせたNAT64、またはスマートフォンでは464XLATです。
NAT64では、DNS64がホストのAレコードからAAAAレコードを作り、変換装置が通信をIPv4へ中継します。464XLATでは、スマートフォン上の変換装置(CLAT)がアプリのIPv4パケットをIPv6に変換し、プロバイダーのNAT64(PLAT)がそれを共有のパブリックアドレス上でIPv4に戻します。
移行はおよそ半分まで進んでいます:2026年10月22日には利用者の47.13%がIPv6でGoogleにアクセスしており(Google)、APNIC Labsは世界の利用者の43.8%をIPv6対応と集計しています。
デュアルスタック
IPv4 + IPv6IPv4 · IPv6サーバー192.0.2.33 · 2001:db8::33NAT64 + DNS64
IPv6IPv6DNS64AAAA 64:ff9b::c000:221IPv6NAT6464:ff9b::/96IPv4IPv4サーバー192.0.2.33464XLAT
IPv4IPv4CLATスマートフォンIPv6PLATNAT64IPv4IPv4サーバー192.0.2.33
の利用者がIPv6に対応(APNIC Labs)IPv4とIPv6は相互に通信できますか?
直接はできません:IPv6のみのホストとIPv4のみのホストの間には、IPv6クライアントがIPv4サーバーに接続するためのNAT64のような変換装置が必要です。一方、デュアルスタックのホストは相手が持つプロトコルをそのまま使います。
2つのプロトコルはパケットの形式が異なるため、何かが各パケットを書き換える必要があります。ステートレスな変換装置(SIIT、RFC 7915)はRFC 6052のプレフィックスを使ってアドレスを1対1で対応させ、NAT64は多数のIPv6クライアントでIPv4アドレスを共有します。
そのため、ほとんどのネットワークは両方のプロトコルを動かし続けています:デュアルスタックの端末には変換がまったく必要ありません。
| クライアント ↓ · サーバー → | IPv4のみ | IPv6のみ | デュアルスタック |
|---|---|---|---|
| IPv4のみ | IPv4 | 変換装置(SIIT) | IPv4 |
| IPv6のみ | NAT64 + DNS64 | IPv6 | IPv6 |
| デュアルスタック | IPv4 | IPv6 | どちらでも |
コードでIPv4をIPv6に変換するには?
ほとんどの言語では1回の呼び出しで済みます:PythonのIPv4Address.ipv6_mapped、GoのnetipのIs4In6とUnmap、MySQLのINET6_ATONとIS_IPV4_MAPPED、PostgreSQLのinet型です。
Python 3.13でipv6_mappedが追加され、射影アドレスをドット付きの形で表示するようになりました。GoのAddr.Stringは::ffff:192.0.2.33と表示し、Unmapは通常のIPv4アドレスを返します。Nodeのnet.isIP()は射影アドレスに対して6を返し、net.BlockListはIPv4のルールをこれに照合します。
› import ipaddress ipaddress.IPv4Address('192.0.2.33').ipv6_mapped IPv6Address('::ffff:192.0.2.33')
Python 3.13+
› a := netip.MustParseAddr("::ffff:192.0.2.33") fmt.Println(a.Is4In6(), a.Unmap()) true 192.0.2.33
Go net/netip
› SELECT IS_IPV4_MAPPED(INET6_ATON('::ffff:192.0.2.33')); 1
MySQL 8.4
› SELECT inet '::ffff:192.0.2.33'; ::ffff:192.0.2.33
PostgreSQL 16
› net.isIP('::ffff:192.0.2.33') 6
Node.js net
よくある質問
192.168.1.1をIPv6で表すと?
IPv4をIPv6に変換すると、端末にIPv6アドレスが付きますか?
データベースにはどのIPv6形式で保存すべきですか?
::ffff:192.0.2.1と::ffff:c000:201は同じですか?
64:ff9b::10.1.1.1が無効なのはなぜですか?
IPv4アドレスの6to4アドレスとは?
IPv6を使っている人はどれくらいいますか?
IPv6専用のスマートフォンはどのようにIPv4のWebサイトに接続するのですか?
PythonでIPv4をIPv6に変換するには?
入力した内容はサーバーに送信されますか?
関連ツール
IPv6からIPv4変換
IPv6に含まれるIPv4を抽出:射影・NAT64・6to4・Teredo・ISATAPをビット単位で
IPv6省略・展開
RFC 5952の方法でIPv6アドレスを省略・展開し、各ゼロを消した規則も表示
IPから10進数変換
IPアドレスと10進数・16進数・2進数・8進数を相互変換、各オクテットの重みも表示
自分のIPアドレス確認
パブリックIPのIPv4とIPv6を同時に表示。ネットワーク、位置情報、VPNチェック付き
IPv6接続確認テスト
IPv6が使えるか、ブラウザーがどちらを選ぶか、サイトのIPv6対応を確認
サブネット計算機
IPv4・IPv6ブロックのネットワーク、ブロードキャスト、使用可能なホスト、マスクを計算。VLSM、分割、クラウドのサブネットにも対応
逆引きDNS
PTRレコードでIPアドレスに関連するホスト名を検索
DNS検索
ドメイン自身のネームサーバーから全DNSレコードを取得し、GoogleとCloudflareのキャッシュと比較