Создаем цифровые решения, которые работают на бизнес
Разработчику
Может заинтересовать
IDN-домены: Punycode в Unicode и обратно.
Система доменных имён понимает только латиницу, цифры и дефис. Чтобы домен кириллицей вообще мог существовать, его переписывают латиницей по специальному правилу — это и есть Punycode.
Префикс xn-- обозначает, что дальше идёт закодированное название. Увидеть его можно в сертификате, в настройках почты или в логах сервера — там домен почти всегда в этом виде.
Украинская «а» и латинская «a» выглядят одинаково, но для сети это разные символы. На этом строят мошеннические домены.
Домен написан обычными латинскими буквами и в Punycode не нуждается в кодировании.
Одна буква заменена кириллической. На вид не отличить, а домен другой — и начинается с xn--.
Поэтому проверка и полезна: если обычный на вид латинский домен вдруг превращается в xn--, в нём есть нелатинские символы. Для банковской или платёжной ссылки это повод не переходить.
Домены с кириллицей и другими национальными символами (IDN) на самом деле хранятся в DNS в закодированном виде с префиксом xn--. Этот конвертер преобразует домены в обе стороны: пример.укр → xn--e1afmkfd.xn--j1amh и обратно. Кодирование нужно при настройке DNS, SSL-сертификатов, почтовых серверов — везде, где система не понимает кириллицу.
Ещё одно важное применение — безопасность: мошенники регистрируют домены, визуально идентичные известным, подменяя латинские буквы кириллическими. Прогнав подозрительный домен через конвертер, вы увидите его настоящую xn--форму и сразу поймёте, подделка это или нет.