跳至內容
Toova
所有工具

IPv4 ↔ IPv6 轉換工具

注重隱私的設計 — 完全在您的瀏覽器中執行

切換方向並貼上像 192.0.2.1 的 IPv4,即可看到 IPv4-mapped(::ffff:192.0.2.1)、完整展開形與 IPv4-compatible 的 IPv6 表示;切換為 IPv6 → IPv4,可從 mapped 位址中抽出嵌入的 IPv4,或檢視任何 IPv6 的壓縮與展開形式。

IPv4 嵌入 IPv6 的三種表示

RFC 4291 規定了在 IPv6 中表達 IPv4 的兩種寫法。目前的主流是 IPv4-mapped:::ffff:a.b.c.d。較舊的是 IPv4-compatible:::a.b.c.d,新程式碼已被棄用,但仍會出現在舊文件與某些遺留協定堆疊中。我們同時提供完整展開形(8 組 16 位元十六進位,無省略),這在日誌中 grep 或逐位元比對位址時最為實用。

壓縮形與展開形

IPv6 提供文字縮寫:最長一段連續為 0 的 16 位元群組可用單一個 :: 代替。所以 2001:db8:0:0:0:0:0:1 變成 2001:db8::1。:: 在一個位址中最多出現一次。RFC 5952 規定規則:十六進位字母小寫、僅壓縮最長一段、每組去除前導零。公開時應使用壓縮形;ipset、BPF 之類的工具則需要展開形。

為什麼雙協定堆疊除錯重要

當雙協定堆疊伺服器透過 IPv6 socket 接收 IPv4 客戶端時,作業系統會將其呈現為以 ::ffff: 開頭的對映位址。應用程式日誌就會出現對映寫法,使得針對預期 IPv4 名單的搜尋失敗。先用此轉換器標準化再比對,或用來確認某個通道是否正確傳遞 IPv4 與 IPv6 之間的流量。

常見問題

什麼是 IPv4-mapped 的 IPv6 位址?
它位於 ::ffff:0:0/96(RFC 4291)。雙協定堆疊 socket 會把 IPv4 客戶端以 mapped 位址呈現,使單一 bind 同時服務兩種協定。
為什麼有兩種以零開頭的格式?
::a.b.c.d 是 IPv4-compatible,RFC 4291 已將其棄用;::ffff:a.b.c.d 則是現行的 IPv4-mapped。我們同時顯示是因為一些舊系統仍輸出 compatible。
::ffff:a.b.c.d 已被棄用嗎?
沒有 — 在今日的雙協定堆疊程式碼中,IPv4-mapped 仍是推薦寫法。被棄用的是不含 ffff 的 IPv4-compatible。
任何 IPv6 都能取回 IPv4 嗎?
只有 IPv6 落在 mapped 或 compatible 範圍時才可以;一般 IPv6 如 2001:db8::1 並沒有可抽出的 IPv4,工具只會呈現其展開與壓縮形式。
:: 與 0:0:0:0:0:0:0:0 有什麼差別?
0:0:0:0:0:0:0:0 是明確的未指定位址,:: 則是它的壓縮形式,也是 IPv6 推薦的標準寫法。
我輸入的 IP 會離開頁面嗎?
不會。轉換在此分頁的 JavaScript 中執行,我們不會看到、記錄或儲存你輸入的位址。