Chuyển đổi IPv4 sang IPv6
Nhập một địa chỉ IPv4 để chuyển IPv4 sang IPv6 và xem mọi địa chỉ IPv6 mang nó, từ dạng ánh xạ IPv4 trong log của bạn đến NAT64 và 6to4, viết theo RFC 5952 và ở dạng đầy đủ, mỗi dạng được đánh dấu đang dùng, nay hiếm gặp hay đã lỗi thời.
Đọc theo dạng thập phân có dấu chấm
Dạng có dấu chấm, một số (3221225985), hex hoặc một URL. Chuyển đổi ngay trong trình duyệt của bạn; không gửi gì đi.
Làm sao chuyển IPv4 sang IPv6?
Viết 32 bit của địa chỉ IPv4 thành hai nhóm hex và đặt chúng vào chỗ mà một định dạng IPv6 dành cho chúng: với dạng ánh xạ IPv4 thông dụng, đó là sau ::ffff:, nên 192.0.2.33 trở thành ::ffff:c000:221, viết là ::ffff:192.0.2.33.
Mỗi phần thập phân thành hai chữ số hex (192 = c0, 0 = 00, 2 = 02, 33 = 21), và bốn cặp đó tạo thành hai nhóm 16 bit. RFC 5952 khuyến nghị giữ dạng có dấu chấm sau ::ffff: vì nó cho thấy các bit mang ý nghĩa gì.
Việc này chỉ thay đổi cách viết địa chỉ. Nó không cấp cho thiết bị một địa chỉ IPv6 hay kết nối IPv6; những thứ đó đến từ mạng.
c00002023321
IPv4 của bạn ở dạng hex192.0.2.33 là c0 00 02 21: 8 chữ số mà mọi dạng IPv6 đều mang.Các bit đi đâuCùng 8 chữ số đó chuyển tới bit 96–127 với ánh xạ và NAT64, và tới bit 16–47 với 6to4.Còn được dùng không?Đang dùng, nay hiếm gặp hay đã lỗi thời, theo các RFC và dữ liệu lưu lượng.Prefix của mạng bạnNhập prefix NAT64 và độ dài để có địa chỉ mà bộ chuyển đổi của bạn dùng.Nén hay đầy đủVăn bản RFC 5952, cách viết còn lại bên dưới, và đủ 32 chữ số chỉ với một nút gạt.Nên dùng dạng IPv6 nào?
Dùng dạng ánh xạ IPv4 trong phần mềm (socket, log, cơ sở dữ liệu) và prefix NAT64 của mạng bạn trên mạng chỉ có IPv6; các dạng khác nay hiếm gặp hoặc đã bị loại bỏ.
Địa chỉ ánh xạ không bao giờ xuất hiện trên đường truyền. Địa chỉ NAT64 thì có, và prefix well-known 64:ff9b::/96 chỉ được mang địa chỉ IPv4 toàn cầu (RFC 6052). 6to4 cũng cần một địa chỉ IPv4 công cộng.
Địa chỉ tương thích IPv4 đã lỗi thời, và prefix IPv4-translated của SIIT đã nhường chỗ cho các prefix theo RFC 6052.
| Định dạng | Dùng cho | Trạng thái | 192.0.2.33 trở thành |
|---|---|---|---|
| Ánh xạ IPv4RFC 4291 | Socket, log và cơ sở dữ liệu | Đang dùng | ::ffff:192.0.2.33 |
| NAT64, prefix well-knownRFC 6052 | Mạng chỉ có IPv6 truy cập IPv4 | Đang dùng | 64:ff9b::c000:221 |
| NAT64, khối dùng cục bộRFC 8215 | NAT64 riêng của một mạng, trong 64:ff9b:1::/48 | Đang dùng | 64:ff9b:1::c000:221 |
| 6to4RFC 3056 | Đường hầm tự động, nay hiếm gặp | Nay hiếm gặp | 2002:c000:221::/48 |
| ISATAPRFC 5214 | Đường hầm trong một site, nay hiếm gặp | Nay hiếm gặp | fe80::5efe:c000:221 |
| IPv4-translatedRFC 2765 | Chuyển đổi stateless kiểu cũ (SIIT) | Nay hiếm gặp | ::ffff:0:192.0.2.33 |
| Tương thích IPv4RFC 4291 | Không dùng nữa: đã loại bỏ | Đã lỗi thời | ::c000:221 |
Địa chỉ IPv6 ánh xạ IPv4 là gì?
Đó là một địa chỉ IPv4 được viết như một địa chỉ IPv6: 80 bit 0, 16 bit 1, rồi địa chỉ IPv4 32 bit (::ffff:0:0/96), để phần mềm chỉ có một socket IPv6 vẫn xử lý được các đầu kết nối IPv4.
Địa chỉ ánh xạ chỉ tồn tại bên trong phần mềm; IANA đánh dấu khối này là không được chuyển tiếp. Điều đó có khía cạnh bảo mật: một gói tin từ ::ffff:127.0.0.1 có thể vượt qua các kiểm tra vốn chỉ dành cho chính máy đó, nên bộ lọc phải bỏ ánh xạ trước khi so sánh (RFC 4942).
Cơ sở dữ liệu nhận ra chúng: IS_IPV4_MAPPED() của MySQL chấp nhận đuôi có dấu chấm lẫn đuôi hex, và PostgreSQL in chúng ở dạng ký hiệu hỗn hợp.
0000:0000:0000:0000:000016 bit 1ffffđịa chỉ IPv4, 32 bit192.0.2.33accept() → ::ffff:192.0.2.33Quá trình chuyển từ IPv4 sang IPv6 diễn ra thế nào?
Các mạng chạy song song cả hai giao thức (dual-stack), còn mạng chỉ có IPv6 truy cập internet IPv4 qua chuyển đổi: NAT64 cùng DNS64, hoặc 464XLAT trên điện thoại.
Với NAT64, DNS64 tạo bản ghi AAAA từ bản ghi A của một host, và bộ chuyển đổi đưa lưu lượng sang IPv4. Với 464XLAT, bộ chuyển đổi trên điện thoại (CLAT) biến các gói tin IPv4 của ứng dụng thành IPv6, và NAT64 của nhà mạng (PLAT) biến chúng trở lại thành IPv4 trên các địa chỉ công cộng dùng chung.
Quá trình này đã đi được khoảng một nửa: ngày 22 tháng 10 năm 2026, 47,13% người dùng truy cập Google qua IPv6 (Google), và APNIC Labs ghi nhận 43,8% người dùng trên toàn thế giới có khả năng dùng IPv6.
Dual-stack
IPv4 + IPv6IPv4 · IPv6Máy chủ192.0.2.33 · 2001:db8::33NAT64 + DNS64
IPv6IPv6DNS64AAAA 64:ff9b::c000:221IPv6NAT6464:ff9b::/96IPv4Máy chủ IPv4192.0.2.33464XLAT
IPv4IPv4CLATĐiện thoạiIPv6PLATNAT64IPv4Máy chủ IPv4192.0.2.33
người dùng có khả năng dùng IPv6 (APNIC Labs)IPv4 và IPv6 có giao tiếp được với nhau không?
Không trực tiếp: một host chỉ có IPv6 và một host chỉ có IPv4 cần một bộ chuyển đổi ở giữa, chẳng hạn NAT64 cho máy khách IPv6 truy cập máy chủ IPv4, còn các host dual-stack chỉ đơn giản dùng giao thức mà phía bên kia có.
Hai giao thức có định dạng gói tin khác nhau, nên phải có thứ gì đó viết lại từng gói. Bộ chuyển đổi stateless (SIIT, RFC 7915) ánh xạ địa chỉ một-một bằng các prefix theo RFC 6052; NAT64 chia sẻ địa chỉ IPv4 cho nhiều máy khách IPv6.
Đó là lý do hầu hết các mạng vẫn chạy cả hai giao thức: một thiết bị dual-stack không cần chuyển đổi gì cả.
| Máy khách ↓ · Máy chủ → | Chỉ IPv4 | Chỉ IPv6 | Dual-stack |
|---|---|---|---|
| Chỉ IPv4 | IPv4 | bộ chuyển đổi (SIIT) | IPv4 |
| Chỉ IPv6 | NAT64 + DNS64 | IPv6 | IPv6 |
| Dual-stack | IPv4 | IPv6 | cái nào cũng được |
Làm sao chuyển IPv4 sang IPv6 trong code?
Hầu hết ngôn ngữ làm việc này trong một lệnh gọi: IPv4Address.ipv6_mapped của Python, netip của Go với Is4In6 và Unmap, INET6_ATON của MySQL với IS_IPV4_MAPPED, và kiểu inet của PostgreSQL.
Python 3.13 đã thêm ipv6_mapped và in địa chỉ ánh xạ ở dạng có dấu chấm. Addr.String của Go in ra ::ffff:192.0.2.33 và Unmap trả về địa chỉ IPv4 thuần. net.isIP() của Node trả về 6 với một địa chỉ ánh xạ, và net.BlockList so khớp các quy tắc IPv4 với nó.
› 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
Câu hỏi thường gặp
192.168.1.1 ở dạng IPv6 là gì?
Chuyển IPv4 sang IPv6 có cấp cho thiết bị của tôi một địa chỉ IPv6 không?
Nên lưu dạng IPv6 nào trong cơ sở dữ liệu?
::ffff:192.0.2.1 có giống ::ffff:c000:201 không?
Vì sao 64:ff9b::10.1.1.1 không hợp lệ?
Địa chỉ 6to4 của một địa chỉ IPv4 là gì?
Có bao nhiêu người dùng IPv6?
Điện thoại chỉ có IPv6 truy cập website IPv4 bằng cách nào?
Làm sao chuyển IPv4 sang IPv6 bằng Python?
Những gì tôi nhập có được gửi tới máy chủ của bạn không?
Còn thiếu điều gì?Đề xuất tính năng hoặc công cụ mới
Công cụ liên quan
IPv6 Sang IPv4
Tìm địa chỉ IPv4 trong một địa chỉ IPv6: ánh xạ, NAT64, 6to4, Teredo và ISATAP, từng bit một
Nén IPv6
Nén hoặc mở rộng địa chỉ IPv6 theo RFC 5952 và xem quy tắc nào đã bỏ từng số 0
Chuyển Đổi IP Sang Thập Phân
Đổi địa chỉ IP sang thập phân, hex, nhị phân, bát phân và ngược lại, kèm trọng số từng octet
IP Của Tôi Là Gì
IPv4 và IPv6 công cộng của bạn cùng lúc, kèm mạng, vị trí và kiểm tra VPN
Kiểm tra IPv6
Kiểm tra IPv6 có hoạt động, trình duyệt chọn họ nào và website có IPv6 không
Máy Tính Subnet
Địa chỉ mạng, broadcast, số host dùng được và mask cho mọi khối IPv4 hoặc IPv6, kèm VLSM, chia subnet và subnet trên cloud
Tra Cứu DNS Ngược
Tìm hostname liên kết với bất kỳ địa chỉ IP nào qua bản ghi PTR
Tra Cứu DNS
Mọi bản ghi DNS từ máy chủ của chính tên miền, cạnh bộ nhớ đệm của Google và Cloudflare