IPv4 ↔ IPv6 매핑 계산기
IPv4 주소를 IPv4-mapped/compatible IPv6 표기로 변환하고 다시 해석합니다.
IPv4 주소를 IPv6 안에 표현하는 방법은 여러 가지입니다. 가장 흔한 IPv4 매핑 IPv6 (::ffff:192.0.2.33)부터 16진 표기(::ffff:c000:0221), 폐기된 IPv4 호환 주소, 그리고 6to4 프리픽스까지 한 번에 환산해 보여줍니다. 반대로 매핑된 IPv6 문자열을 붙여넣으면 원래의 IPv4 점 표기를 복원합니다.
듀얼 스택 서버 로그나 소켓 디버깅에서 ::ffff:로 시작하는 주소를 자주 만나게 되는데, 이 도구로 그 실체를 빠르게 확인할 수 있습니다. IPv6 표기 자체를 정규화하려면 IPv6 압축/확장 변환기를, 대역 계산이 필요하면 CIDR 계산기를 함께 사용하세요.
| IPv4 매핑 IPv6 (점 표기) | ::ffff:192.0.2.33 |
|---|---|
| IPv4 매핑 IPv6 (16진) | ::ffff:c000:0221 |
| IPv4 호환 (폐기됨) | ::192.0.2.33 |
| 6to4 프리픽스 | 2002:c000:0221::/48 |
매핑 형식 4가지
같은 IPv4 주소 192.0.2.33을 IPv6로 표현하는 대표 형식은 다음과 같습니다.
- IPv4 매핑 (점 표기):
::ffff:192.0.2.33— 소켓 API에서 IPv4를 IPv6로 다룰 때 쓰는 표준 형식. - IPv4 매핑 (16진):
::ffff:c000:0221— 위와 동일한 비트값을 16진 그룹으로 표기한 것. - IPv4 호환 (폐기):
::192.0.2.33— RFC 4291에서 폐기되어 더 이상 사용하지 않습니다. - 6to4 프리픽스:
2002:c000:0221::/48— IPv4 주소를 6to4 터널의 사이트 프리픽스로 인코딩한 것.
::ffff:0:0/96 매핑 대역
IPv4 매핑 IPv6 주소는 ::ffff:0:0/96 대역에 속합니다. 즉 상위 80비트는 모두 0, 그 다음 16비트가 ffff, 마지막 32비트가 원래의 IPv4 주소입니다. 듀얼 스택 소켓이 IPv4 연결을 IPv6 주소 공간으로 표현할 때 바로 이 대역을 사용합니다. 16진값은ipv4ToInt 결과의 상위 16비트와 하위 16비트를 각각 4자리로 패딩해 만듭니다.
표현 형식 비교표 (192.0.2.33 기준)
같은 IPv4 주소 192.0.2.33이 각 형식에서 어떻게 보이는지 한눈에 비교한 표입니다.
| 형식 | 표기 | 대역 / 상태 | 쓰임새 |
|---|---|---|---|
| IPv4 매핑 (점 표기) | ::ffff:192.0.2.33 | ::ffff:0:0/96 · 표준 | 듀얼 스택 소켓, 사람이 읽기 쉬운 로그 |
| IPv4 매핑 (16진) | ::ffff:c000:0221 | ::ffff:0:0/96 · 표준 | 위와 동일한 비트값, 순수 IPv6 그룹 표기 |
| IPv4 호환 | ::192.0.2.33 | ::/96 · 폐기(RFC 4291) | 사용 금지, 레거시 해석용으로만 참고 |
| 6to4 프리픽스 | 2002:c000:0221::/48 | 2002::/16 · 거의 폐기 | IPv4 위 IPv6 터널의 사이트 프리픽스 |
변환 예시: 192.0.2.33 → ::ffff:c000:0221
매핑 16진 표기가 어떻게 만들어지는지 단계별로 따라가 보겠습니다.
- 각 옥텟을 16진으로 변환:
192 = 0xc0,0 = 0x00,2 = 0x02,33 = 0x21. - 32비트 정수로 합치면
0xc0000221이 됩니다. - 상위 16비트(high16) =
0xc000, 하위 16비트(low16) =0x0221. - 두 그룹을
::ffff:뒤에 붙여::ffff:c000:0221완성.
이 결과는 ::ffff:0:0/96 매핑 대역 안에 들어가며, 듀얼 스택 소켓이 IPv4 연결을 IPv6 주소 공간으로 표현할 때 정확히 이 형태를 사용합니다. 반대로 ::ffff:c000:0221을 받으면 마지막 32비트 0xc0000221을 옥텟별로 풀어 192.0.2.33으로 되돌립니다.