Перейти к содержимому
Toova
Все инструменты

Конвертер IPv4 ↔ IPv6

Приватность по умолчанию — работает полностью в вашем браузере

Переключите направление и вставьте IPv4 вроде 192.0.2.1 — увидите формы IPv4-mapped (::ffff:192.0.2.1), полную развернутую и IPv4-compatible. Перейдите в IPv6 → IPv4, чтобы извлечь встроенный IPv4 из mapped-адреса, либо посмотреть сжатую и развернутую форму любого IPv6.

Три способа представить IPv4 внутри IPv6

RFC 4291 определяет два способа упаковать IPv4 в IPv6. Современный — IPv4-mapped: ::ffff:a.b.c.d. Старый — IPv4-compatible: ::a.b.c.d, устаревший для нового кода, но всё ещё встречающийся в старой документации и легаси-стэках. Мы также возвращаем полную развернутую форму (восемь 16-битных групп без сокращений) — её удобно использовать для grep в логах и побайтового сравнения адресов.

Сжатое и развернутое представление

IPv6 допускает текстовое сокращение: самая длинная подряд идущая последовательность 16-битных нулевых групп заменяется одним ::. Так 2001:db8:0:0:0:0:0:1 превращается в 2001:db8::1. :: может встречаться в адресе только один раз. RFC 5952 формулирует правила — нижний регистр для hex, сжимать только самую длинную последовательность, опускать ведущие нули в каждой группе. Сжатая форма — то, что вы публикуете; развернутая — то, чего ждут ipset или BPF.

Почему важна отладка dual-stack

Когда сервер на dual-stack принимает клиентов IPv4 через сокет IPv6, операционная система отдаёт их как mapped-адреса с префиксом ::ffff:. В журналах приложения тогда появляются такие записи, и поиск по обычному списку адресов IPv4 ничего не находит. Используйте этот конвертер, чтобы привести записи к одному виду перед сравнением, либо чтобы убедиться, что туннель корректно перевозит трафик между IPv4 и IPv6.

Часто задаваемые вопросы

Что такое IPv4-mapped адрес IPv6?
Это диапазон ::ffff:0:0/96 (RFC 4291). Dual-stack сокеты показывают 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-точек в dual-stack коде. Устаревший вариант — IPv4-compatible без ffff.
Можно ли извлечь IPv4 из любого IPv6?
Только если IPv6 лежит в mapped или compatible диапазоне. Для обычного IPv6 вида 2001:db8::1 IPv4-компонента нет, и инструмент покажет только развернутую и сжатую формы.
Чем :: отличается от 0:0:0:0:0:0:0:0?
0:0:0:0:0:0:0:0 — это явный адрес unspecified, а :: — его сжатая, каноническая форма в IPv6.
Покидает ли мой IP страницу?
Нет. Конвертация выполняется в JavaScript этой вкладки. Мы не видим, не записываем и не храним введённый адрес.