Kompresi dan ekspansi IPv6
Persingkat alamat IPv6 ke satu-satunya bentuk kanonisnya atau ekspansi menjadi 32 digit lengkap, lalu lihat nol mana yang dibuang, mengapa satu rangkaian menjadi ::, dan aturan RFC 5952 mana yang dilanggar ketikan Anda. Daftar alamat juga bisa.
Dibaca sebagai IPv6
Satu alamat, atau daftar dengan satu alamat per baris (hingga 100). Dikonversi di browser Anda; tidak ada yang dikirim.
2001:db8::1:0:0:1
RFC 5952, aturan demi aturan
- Terkompresi (RFC 5952)
- Diekspansi (lengkap)
- Dalam URL
- Sebagai angka
- Desimal · hex · biner
- Nama reverse DNS
Bagaimana cara mengompresi alamat IPv6?
Ubah ke huruf kecil, buang nol di depan setiap grup, lalu ganti rangkaian terpanjang dari dua grup nol atau lebih dengan ::, atau rangkaian pertama jika ada dua yang sama panjang.
Hasilnya adalah satu-satunya bentuk kanonis yang diminta RFC 5952 untuk dicetak oleh software. Program tetap harus menerima setiap penulisan valid lainnya sebagai input, jadi kompresi tidak pernah mengubah alamatnya, hanya cara penulisannya.
2001:0DB8:0000:0000:0000:FF00:0042:8329392001:0db8:0000:0000:0000:ff00:0042:8329392001:db8:0:0:0:ff00:42:8329272001:db8::ff00:42:83292239 → 22 karakter

Yang Anda ketikHuruf besar, nol di depan, dan lain-lain: penulisan valid apa pun bisa dibaca.Nol yang dibuangNol di depan dicoret, grup demi grup.Rangkaian yang menjadi ::Rangkaian grup nol terpanjang; jika seri, yang pertama.Rangkaian yang tetapRangkaian nol lainnya mempertahankan 0-nya, beserta alasannya.Aturan demi aturanBerapa aturan RFC 5952 yang dilanggar ketikan itu; daftar di bawahnya menyebutkan masing-masing dan apa yang berubah.Apa saja aturan kompresi IPv6?
RFC 5952 menetapkan lima aturan: buang nol di depan, buat :: sepanjang mungkin, jangan pernah memakai :: untuk satu grup nol, kompres rangkaian terpanjang (yang pertama jika seri), dan tulis huruf hex dalam huruf kecil.
Rekomendasi keenam berlaku untuk alamat yang membawa IPv4: setelah prefiks seperti ::ffff:, tulis 32 bit terakhir sebagai alamat IPv4 bertitik. Alat ini mencocokkan setiap aturan dengan yang Anda ketik dan menyebutkan aturan yang diperbaikinya.
1Nol di depan dibuang§4.1
Benar: 2001:db8::1
Salah: 2001:0db8::0001
2:: sepanjang mungkin§4.2.1
Benar: 2001:db8::2:1
Salah: 2001:db8:0:0:0:0:2:1
3Tanpa :: untuk satu grup§4.2.2
Benar: 2001:db8:0:1:1:1:1:1
Salah: 2001:db8::1:1:1:1:1
4Rangkaian terpanjang; yang pertama jika seri§4.2.3
Benar: 2001:db8::1:0:0:1
Salah: 2001:db8:0:0:1::1
5Huruf kecil§4.3
Benar: 2001:db8::a
Salah: 2001:DB8::A
+Ekor IPv4 bertitik§5
Benar: ::ffff:192.0.2.1
Salah: 0:0:0:0:0:ffff:192.0.2.1
Bagaimana cara mengekspansi alamat IPv6?
Hitung grup yang tertulis, biarkan :: mewakili grup nol sebanyak yang diperlukan untuk mencapai delapan, dan lengkapi setiap grup menjadi empat digit: 2001:db8::1 punya tiga grup, jadi :: mewakili lima.
Bentuk ekspansi adalah yang dipakai reverse DNS, digit demi digit, dan yang diperlukan banyak log dan spreadsheet untuk mengurutkan sebagai teks. Python menyebutnya .exploded dan Go StringExpanded.
2001db8::13 tertulis2001db8000001+ 5 grup nol yang diwakili ::20010db8000000000000000000000001dilengkapi menjadi 4 digitAda berapa cara menulis satu alamat IPv6?
Banyak: nol di depan, huruf besar-kecil, dan posisi :: semuanya bisa berubah, jadi satu alamat punya banyak penulisan yang valid, dan RFC 5952 mencantumkan delapan untuk 2001:db8:0:0:1:0:0:1 sebelum menetapkan satu bentuk kanonis.
Itulah sebabnya membandingkan alamat sebagai teks gagal: dua penulisan dari alamat yang sama tidak cocok. Bandingkan sebagai angka 128 bit, atau kompres keduanya lebih dulu.
2001:db8:0:0:1:0:0:12001:0db8:0:0:1:0:0:12001:db8::1:0:0:12001:db8::0:1:0:0:12001:0db8::1:0:0:12001:db8:0:0:1::12001:db8:0000:0:1::12001:DB8:0:0:1::12001:db8::1:0:0:1kanonis · RFC 5952Bagaimana menulis alamat IPv6 di URL, dengan port atau zone?
Taruh alamatnya di dalam kurung siku, http://[2001:db8::1]:8443/, agar port tidak dikira grup; zone seperti %eth0 sama sekali tidak bisa dimasukkan ke URL browser.
RFC 5952 meminta alamat yang memakai port diapit kurung siku, dan menyebut 2001:db8::1:8443 tidak disarankan. Kurung siku tidak dipakai untuk hal lain di URL. Browser menampilkan alamat dalam hex bahkan setelah ::ffff:, jadi [::ffff:192.0.2.1] tampil sebagai [::ffff:c000:201].
Zone menunjuk sebuah antarmuka di satu mesin, seperti pada fe80::1%eth0. RFC 9844 mengeluarkannya lagi dari URL pada 2025 dan browser menolaknya, meski program sebaiknya tetap membiarkan Anda mengetikkannya.
Sebuah zone (%eth0) · fe80::1%eth0
| Diketik di kolom sebuah program | boleh |
| Di URL browser | ditolak |
| inet_pton() | tidak bisa membacanya |
| Alamat global | tidak pernah punya |
Bagaimana cara mengompresi atau mengekspansi IPv6 dalam kode?
Parse alamatnya lalu cetak: .compressed di Python, netip.Addr.String() di Go, dan INET6_NTOA(INET6_ATON(…)) di MySQL menghasilkan teks kanonis, sedangkan .exploded dan StringExpanded() menghasilkan bentuk lengkap.
str() di Python juga menghasilkan bentuk terkompresi, dan Python menerima akhiran %zone. MySQL mencetak huruf kecil, paling banyak 39 karakter, sama di setiap platform.
› import ipaddress a = ipaddress.ip_address('2001:0DB8::0001') a.compressed, a.exploded ('2001:db8::1', '2001:0db8:0000:0000:0000:0000:0000:0001')
Python ipaddress
› a := netip.MustParseAddr("2001:0DB8::0001") fmt.Println(a.String(), a.StringExpanded()) 2001:db8::1 2001:0db8:0000:0000:0000:0000:0000:0001
Go net/netip
› SELECT INET6_NTOA(INET6_ATON('2001:0DB8::0001')); 2001:db8::1
MySQL 8.4
Pertanyaan yang sering diajukan
Apa bentuk terkompresi dari 2001:0db8:0000:0000:0000:ff00:0042:8329?
Bolehkah :: dipakai dua kali dalam alamat IPv6?
Mengapa 2001:db8:0:1:1:1:1:1 tidak dikompres menjadi 2001:db8::1:1:1:1:1?
Apakah alamat IPv6 ditulis dengan huruf besar atau huruf kecil?
Bagaimana cara mengekspansi :: dalam alamat IPv6?
Berapa karakter alamat IPv6 terpanjang?
Mengapa ::ffff:c000:280 menjadi ::ffff:192.0.2.128?
Bagaimana cara menaruh alamat IPv6 dengan port di URL?
Bagaimana cara mengompresi alamat IPv6 di Python?
Bisakah saya mengompresi daftar alamat IPv6 sekaligus?
Ada yang kurang?Usulkan fitur atau alat baru
Alat terkait
IPv6 ke IPv4
Temukan alamat IPv4 di dalam alamat IPv6: mapped, NAT64, 6to4, Teredo, dan ISATAP, bit demi bit
IPv4 ke IPv6
Semua bentuk IPv6 dari alamat IPv4: mapped, NAT64, dan 6to4, masing-masing ditandai dipakai atau jarang
Konverter IP ke Desimal
Alamat IP ke desimal, hex, biner, dan oktal serta sebaliknya, dengan nilai tempat setiap oktet
IP Saya Apa
IPv4 dan IPv6 publik Anda sekaligus, dengan jaringan, lokasi, dan cek VPN
Tes IPv6
Uji apakah IPv6 berfungsi, jenis alamat pilihan browser, dan IPv6 sebuah situs
Kalkulator Subnet
Jaringan, broadcast, host yang dapat dipakai, dan mask untuk blok IPv4 atau IPv6, plus VLSM, pembagian, dan subnet cloud
Pencarian DNS Terbalik
Temukan hostname terkait alamat IP melalui rekaman PTR
Cek DNS
Semua DNS record langsung dari nameserver domain, berdampingan dengan cache Google dan Cloudflare