ข้ามไปยังเนื้อหา
Toova
เครื่องมือทั้งหมด

ตัวแปลง IPv4 ↔ IPv6

ออกแบบเพื่อความเป็นส่วนตัว — ทำงานในเบราว์เซอร์ของคุณทั้งหมด

สลับทิศทางและวาง IPv4 อย่าง 192.0.2.1 เพื่อดูรูปแบบ IPv4-mapped (::ffff:192.0.2.1) รูปแบบ expanded เต็มและ IPv4-compatible เปลี่ยนเป็น IPv6 → IPv4 เพื่อดึง IPv4 ที่ฝังอยู่ในที่อยู่ mapped หรือดูรูปแบบ compressed และ expanded ของ IPv6 ใด ๆ

สามวิธีในการใส่ IPv4 ลงใน IPv6

RFC 4291 กำหนดสองวิธีในการแสดง IPv4 ภายใน IPv6 วิธีปัจจุบันคือ IPv4-mapped ::ffff:a.b.c.d ส่วนวิธีเก่ากว่าคือ IPv4-compatible ::a.b.c.d ซึ่งเลิกใช้สำหรับโค้ดใหม่แล้วแต่ยังพบในเอกสารเก่าและสแต็กบางตัวที่ตกค้าง เราคืนรูปแบบ expanded เต็ม (กลุ่มฐานสิบหก 16 บิตทั้งหมดแปดกลุ่ม) ซึ่งเหมาะกับการ grep ในล็อกหรือเทียบที่อยู่ทีละไบต์

Compressed กับ expanded

IPv6 อนุญาตให้ใช้คำย่อ: ลำดับกลุ่มเลขศูนย์ 16 บิตที่ยาวที่สุดสามารถถูกแทนที่ด้วย :: เดี่ยว ๆ ทำให้ 2001:db8:0:0:0:0:0:1 กลายเป็น 2001:db8::1 และ :: ปรากฏในที่อยู่ได้ครั้งเดียว RFC 5952 กำหนดกฎ ได้แก่ ใช้เลขฐานสิบหกตัวพิมพ์เล็ก บีบเฉพาะลำดับที่ยาวที่สุด และตัดเลขศูนย์นำหน้าในแต่ละกลุ่ม รูปแบบที่เผยแพร่ควรเป็น compressed ส่วนเครื่องมืออย่าง ipset หรือ BPF ต้องการ expanded

ทำไมการดีบักดูอัลสแตกจึงสำคัญ

เมื่อเซิร์ฟเวอร์แบบดูอัลสแตกรับไคลเอนต์ IPv4 ผ่านซ็อกเก็ต IPv6 ระบบปฏิบัติการจะแสดงพวกเขาเป็นที่อยู่แบบแมพที่ขึ้นต้นด้วย ::ffff: บันทึกของแอปพลิเคชันจึงปนรูปแบบที่ถูกแมพไว้ ทำให้การค้นหาตามรายชื่อ IPv4 ปกติพลาดไป ใช้เครื่องมือแปลงตัวนี้เพื่อจัดรูปแบบให้เหมือนกันก่อนเปรียบเทียบ หรือเพื่อยืนยันว่าทันเนลส่งทราฟิกระหว่าง IPv4 กับ IPv6 ได้ถูกต้อง

คำถามที่พบบ่อย

ที่อยู่ IPv6 แบบ mapped จาก IPv4 คืออะไร?
อยู่ในช่วง ::ffff:0:0/96 (RFC 4291) ซ็อกเก็ตดูอัลสแตกใช้สำหรับแสดงไคลเอนต์ 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 ยังคงเป็นวิธีที่แนะนำในปัจจุบันสำหรับแสดงเอนด์พอยต์ IPv4 ในโค้ดดูอัลสแตก รูปแบบที่เลิกใช้คือ IPv4-compatible (ไม่มี ffff)
ดึง IPv4 ออกจาก IPv6 ใด ๆ ได้หรือไม่?
ได้เฉพาะเมื่อ IPv6 อยู่ในช่วง mapped หรือ compatible สำหรับ IPv6 ทั่วไปอย่าง 2001:db8::1 จะไม่มี IPv4 ให้สกัด เครื่องมือจะแสดงรูปแบบ expanded และ compressed เท่านั้น
:: กับ 0:0:0:0:0:0:0:0 ต่างกันยังไง?
0:0:0:0:0:0:0:0 คือที่อยู่ unspecified แบบเต็ม ส่วน :: คือรูปแบบ compressed ของที่อยู่เดียวกัน ใน IPv6 รูปแบบ compressed คือรูปแบบมาตรฐาน
IP ที่ฉันป้อนจะออกจากหน้านี้ไหม?
ไม่ออก การแปลงทำงานใน JavaScript ของแท็บนี้ทั้งหมด เราจะไม่เห็น ไม่บันทึก และไม่จัดเก็บที่อยู่ที่คุณป้อน