::ffff:
adalah awalan subnet untuk alamat IPv4 (32 bit) yang ditempatkan di dalam ruang IPv6 (128 bit). IPv6 dipecah menjadi dua bagian, awalan subnet, dan akhiran antarmuka. Masing-masing memiliki panjang 64 bit, atau, 4 grup dengan 4 karakter heksadesimal.
Di IPv6, Anda diizinkan untuk menghapus angka nol di depan, dan kemudian menghapus angka nol yang berurutan, yang berarti ::ffff:
benar-benar diterjemahkan menjadi 0000:0000:ffff:0000
, alamat ini telah ditetapkan sebagai awalan subnet IPv4 ke IPv6, sehingga prosesor IPv6 apa pun akan memahami bahwa itu berfungsi dengan alamat IPv4 dan menanganinya demikian.
Dalam waktu dekat, semua alamat IP akan menjadi IPv6, ini karena kami hampir kehabisan jumlah (4,2 miliar, dikurangi beberapa ruang untuk tujuan lain-lain) di ruang alamat IPv4.
IPv6 memungkinkan ruang yang jauh lebih besar. "340 undecillion seharusnya cukup untuk siapa pun" - Bill Gates berbicara di IPv6.
Penting untuk mulai menangani alamat IP menggunakan namespace IPv6 dan karena itu sertakan ::ffff:
dalam kode Anda karena di masa mendatang akan ada data heksadesimal nyata di antara titik dua tersebut. Jika Anda melepasnya karena alasan estetika, kode Anda akan rusak saat beralih ke jaringan IPv6 atau dihadapkan dengan alamat IPv6.
Beberapa jaringan saat ini menjalankan IPv6 dan Anda akan segera dihadapkan dengan alamat IP IPv6; lakukan lompatan sekarang atau risiko melanggar kode Anda di masa mendatang.
Versi TL; DR (singkat) dari masalah ini adalah: Semuanya bekerja dengan baik. Jangan mengubahnya, ini adalah versi IPv6 dari alamat IPv4.
Jika Anda ingin membuat kode Anda kompatibel dengan IPv6, yang harus Anda lakukan adalah memeriksa ::ffff:
prefiks ... jika ada, hapus dan proses sisanya sebagai IPv4 ... jika ::ffff:
tidak ada, itu adalah alamat IPv6 dan perlu diproses seperti itu. Anda dapat memeriksa ulang dengan melihat apakah titik ada dalam string, jika demikian, itu adalah IPv4.
Ingatlah untuk semuanya kecuali penyesuaian yang perlu Anda lakukan pada alamat IP, Anda hanya merekam IP, bukan? Ini akan menjadi penting bagi parser dan agregat log yang diharapkan ::ffff:127.0.0.1
dan semacamnya di masa mendatang. Kecuali Anda perlu mengubah IP, biarkan saja seperti yang Anda terima.
req.ip
ataureq.ips
?