Конвертер Punycode / IDN
Конвертируйте интернационализированное доменное имя (содержащее не-ASCII символы — буквы с диакритикой, кириллицу или иероглифы CJK) в его ASCII-совместимую форму Punycode («xn--...»), или конвертируйте домен в формате Punycode обратно в читаемую Unicode-форму — прямо в браузере, с помощью реализации алгоритма Bootstring (RFC 3492) с нуля, того же, что используется в адресной строке любого браузера.
Результат
Скопировано!Конвертер Punycode / IDN
DNS был разработан в 1980-х годах с жёстким правилом: метка домена может содержать только ASCII-буквы, цифры и дефисы (правило LDH). Из-за этого было невозможно зарегистрировать домен, использующий буквы любого другого алфавита — кириллицу, греческий, китайский, арабский или даже латиницу с диакритикой вроде «ü» — пока в 2000-х интернационализированные доменные имена (IDNA) не предложили обходной путь: закодировать не-ASCII метку в чисто ASCII-строку с помощью алгоритма Bootstring (RFC 3492) и добавить к ней префикс «xn--», чтобы резолверы и регистраторы могли отличить закодированную метку от обычной. Результат, называемый Punycode, — это то, что на самом деле хранится в DNS и передаётся по сети: «bücher.de» превращается в «xn--bcher-kva.de», — а каждый современный браузер декодирует его обратно в читаемую форму в адресной строке (если только она не выглядит подозрительно — см. заметку о безопасности ниже).
Bootstring работает, разбивая кодовые точки Unicode метки на две группы: все кодовые точки, которые уже являются обычным ASCII, копируются в вывод как есть, за ними следует разделитель «-»; каждая оставшаяся не-ASCII кодовая точка затем кодируется, в порядке появления, как последовательность цифр в 36-ричной системе счисления (a-z, 0-9), которые вместе описывают, какая это кодовая точка и где она находится в строке, используя накопительное смещение от предыдущей позиции. Этот инструмент реализует именно этот алгоритм по опубликованной спецификации — а не обёртку над сторонней библиотекой, — поэтому прозрачно показывает, что именно он обрабатывает, а что нет (см. заметку об ограничениях в FAQ ниже).
У Punycode есть хорошо известный аспект безопасности, который стоит понимать, а не только конвертировать: атака-омограф (или «IDN-спуфинг») регистрирует домен, используя похожие символы из другого алфавита — например, кириллическая «а» (U+0430) визуально неотличима от латинской «a» (U+0061) в большинстве шрифтов, поэтому «аpple.com» с кириллической «а» может отображаться точь-в-точь как «apple.com», оставаясь при этом совершенно другим доменом, закодированным в собственную отдельную строку «xn--». Браузеры смягчают эту угрозу собственными дополнительными эвристиками (показывая необработанную форму «xn--» вместо декодированного Unicode, когда метка подозрительно смешивает алфавиты), которые этот инструмент намеренно НЕ повторяет — это конвертер, а не сканер безопасности. Относитесь к тому, что «домен выглядит правильно», как к более слабому доказательству, чем проверка сертификата или переход по сохранённой закладке — особенно для чего-то чувствительного вроде страницы входа.
Ограничения — прямым текстом: этот инструмент реализует Bootstring из RFC 3492 — преобразование кодовых точек в цифры для одной DNS-метки, — но не полную обработку IDNA2008/UTS-46, которую настоящие браузеры добавляют поверх и вокруг него (приведение регистра Unicode, нормализацию «nameprep», таблицы запрещённых кодовых точек и правила для двунаправленного текста в языках с письмом справа налево). Это значит, что метка с кодовыми точками, которые строгая реализация IDNA отклонила бы, здесь всё ещё может корректно конвертироваться в обе стороны. Это принятое, задокументированное ограничение сфокусированного инструмента-конвертера, а не ошибка в самом шаге Bootstring — при регистрации настоящего домена всегда проходите проверку своего регистратора.
Глоссарий
- Punycode
- ASCII-кодировка (RFC 3492), представляющая Unicode-метку домена в виде строки, которую может нести DNS, с префиксом «xn--».
- IDN
- Интернационализированное доменное имя — доменное имя, содержащее символы вне обычного ASCII, что стало возможным в DNS благодаря кодированию Punycode.
- Префикс ACE («xn--»)
- Префикс ASCII Compatible Encoding, отмечающий метку DNS как закодированную в Punycode, а не как обычную ASCII-метку, которая случайно начинается с этих букв.
- Bootstring
- Универсальный алгоритм (RFC 3492), частным случаем которого является Punycode — кодирует последовательность кодовых точек в более короткую, чисто ASCII-строку.
- Атака-омограф
- Техника фишинга, регистрирующая домен с использованием похожих символов из другого алфавита (например, кириллическая «а» вместо латинской «a»), чтобы он визуально напоминал легитимный домен.
- Метка DNS
- Один сегмент доменного имени, разделённый точками (например, «bücher» и «de» в «bücher.de») — кодирование Punycode применяется к каждой метке отдельно, а не ко всему домену сразу.
Аналог в API
У этого инструмента нет аналога в API нашего сервиса — конвертация Punycode/IDN не является фактом об IP-адресе, поэтому нашему API нечего было бы вернуть здесь. Преобразование выше происходит полностью на вашем устройстве — ничего никуда не отправляется. Если вам нужен именно наш API для поиска информации об IP, он покрывает геолокацию, данные ASN/сети и сигналы угроз/фрода для IP-адреса:
Часто задаваемые вопросы
- Для чего используется Punycode?
- Он позволяет доменному имени содержать не-ASCII символы (латиницу с диакритикой, кириллицу, иероглифы CJK и т.д.), оставаясь при этом валидной ASCII-меткой DNS «под капотом» — именно в такой форме домен фактически хранится и передаётся DNS.
- Почему IDN-домен начинается с «xn--»?
- «xn--» — это префикс ASCII Compatible Encoding (ACE) — он сообщает резолверам и регистраторам, что всё после него является меткой, закодированной по Bootstring, а не обычной ASCII-меткой, случайно начинающейся с этих букв.
- Что такое атака-омограф?
- Техника фишинга, регистрирующая домен с символами из другого алфавита, которые выглядят идентично знакомым — например, кириллическая «а» вместо латинской «a», — так что поддельный домен визуально напоминает настоящий, оставаясь при этом совершенно другой строкой в кодировке Punycode.
- Реализует ли этот инструмент полную нормализацию IDNA2008/UTS-46?
- Нет — только сам алгоритм Bootstring из RFC 3492, без приведения регистра, нормализации nameprep, таблиц запрещённых кодовых точек и правил bidi, которые настоящие браузеры добавляют поверх него. Метка, которую строгая реализация IDNA отклонила бы, здесь всё ещё может корректно конвертироваться; при регистрации настоящего домена всегда проверяйте его через своего регистратора.
- Отправляется ли мой домен на сервер?
- Нет — всё преобразование выполняется в вашем браузере с помощью локальной реализации алгоритма Bootstring. Эта страница не делает для этого ни одного сетевого запроса.
- Почему преобразование завершилось ошибкой?
- Либо одна из меток была пустой (например, две точки подряд), либо, при преобразовании ASCII→Unicode, метка «xn--» не была корректным Punycode (неверная цифра, обрезанная кодировка или внутреннее переполнение значения) — оба случая считаются некорректными входными данными, а не ошибкой инструмента.
Понравился инструмент? Бесплатный аккаунт нашего API даёт 1000 запросов в день.Смотреть документацию API →