Dominios, correos o URL
Convertí dominios internacionalizados (IDN) entre su forma Unicode, como ñandú.com.ar, y la forma ASCII con Punycode que usa el DNS, como xn--and-6ma2c.com.ar. Detecta la dirección sola, acepta correos y URL completas y avisa cuando un dominio mezcla escrituras para hacerse pasar por otro.
Hasta 500 líneas. En los correos se convierte sólo el dominio y en las URL sólo el host.
Resultado
Unicode → ASCII
Unicodeñandú.com.ar
ASCIIxn--and-6ma2c.com.ar
ñandúxn--and-6ma2c13 · Latin
ASCII → Unicode
Unicodemünchen.de
ASCIIxn--mnchen-3ya.de
münchenxn--mnchen-3ya14 · Latin
Unicode → ASCIICorreo
Unicodecontacto@correo.españa.es
ASCIIcontacto@correo.xn--espaa-rta.es
españaxn--espaa-rta13 · Latin
Unicode → ASCIIURL
Unicodehttps://日本語.jp/ページ
ASCIIhttps://xn--wgv71a119e.jp/%E3%83%9A%E3%83%BC%E3%82%B8
日本語xn--wgv71a119e14 · Han
Unicode → ASCII
Unicodeаррӏе.com
ASCIIxn--80ak6aa92e.com
аррӏеxn--80ak6aa92e14 · Cyrillic

La etiqueta está escrita entera con letras cirílicas o griegas que se ven iguales a letras latinas. Puede hacerse pasar por un dominio conocido: revisá la forma xn-- antes de confiar en el enlace.

Punycode sin prefijo (RFC 3492)

Codifica o decodifica cualquier texto con el algoritmo Punycode puro, sin el prefijo xn-- ni la normalización de dominios. Sirve para depurar una implementación propia.

Resultadomaana-pta

Cómo funciona

El DNS sólo acepta letras ASCII, dígitos y guiones, así que un dominio como ñandú.com.ar no puede viajar tal cual. Los dominios internacionalizados (IDN) resuelven eso con Punycode (RFC 3492): cada etiqueta que tiene caracteres fuera de ASCII se codifica con un algoritmo que conserva las letras comunes y agrega al final la posición de las especiales, y se le antepone el prefijo xn--. Así ñandú pasa a ser xn--and-6ma2c.

Antes de codificar, IDNA normaliza el nombre: pasa a minúsculas, unifica las formas Unicode y convierte puntos alternativos como el 。 japonés. Esta herramienta usa el mismo mapeo (UTS #46) que aplica el navegador al abrir una dirección, por lo que el resultado coincide con lo que termina pidiendo al DNS. En los correos convierte sólo el dominio y en las URL sólo el host.

Además desglosa cada etiqueta con su largo y las escrituras que usa, y avisa cuando un dominio mezcla alfabetos o está escrito con letras cirílicas o griegas idénticas a las latinas: es la base de los ataques homógrafos, en los que un enlace aparenta ser de un sitio conocido.

Ejemplos

ñandú.com.arxn--and-6ma2c.com.arSólo cambia la etiqueta que tiene caracteres especiales; com y ar quedan igual. Es la forma que hay que cargar en el DNS y en los SAN de un certificado.
faß.dexn--fa-hia.deCon IDNA2008 la ß alemana es una letra válida y se codifica. Con el estándar anterior se convertía en ss y apuntaba a fass.de, un dominio distinto: por eso algunos sistemas viejos resuelven otra cosa.
аррӏе.comxn--80ak6aa92e.comEl homógrafo que publicó Xudong Zheng en 2017: cinco letras cirílicas que se ven exactamente como apple. Desde entonces Chrome y Firefox muestran este tipo de dominios en su forma xn--.
пример.рфxn--e1afmkfd.xn--p1aiTambién los dominios de primer nivel pueden ser internacionales: .рф es el de Rusia en cirílico y en el DNS se escribe xn--p1ai.

Casos de uso

  • Obtener la forma xn-- de un dominio con acentos o eñe para cargar registros en el DNS, en la configuración de nginx o Apache o en los SAN de un certificado.
  • Entender qué dominio real hay detrás de un xn-- que aparece en un log, en un reporte de phishing o en la barra del navegador.
  • Revisar un enlace sospechoso para detectar letras cirílicas o griegas que imitan a las latinas.
  • Convertir el dominio de una dirección de correo internacionalizada para un servidor que no soporta SMTPUTF8.
  • Comprobar que un dominio internacional no supere los 63 caracteres por etiqueta una vez codificado.

Preguntas frecuentes

¿Qué significa el prefijo xn--?

Es el prefijo ACE (ASCII Compatible Encoding) que marca que la etiqueta está en Punycode. Las etiquetas con guiones en la tercera y cuarta posición quedaron reservadas para esos prefijos, así que los registros no permiten crear un dominio que empiece con xn-- si no es un IDN válido.

¿Qué forma uso en el DNS, en el servidor web y en el certificado?

La forma ASCII, con xn--, en todos los lugares técnicos: registros DNS, server_name de nginx, ServerName de Apache, SAN del certificado y cabeceras Host. La forma Unicode es sólo para mostrarla a las personas; los navegadores la convierten antes de hacer la consulta.

¿Qué es un ataque homógrafo?

Es registrar un dominio que se ve igual a otro usando letras de otro alfabeto, como la a cirílica en lugar de la latina. Los navegadores muestran la forma xn-- cuando una etiqueta mezcla escrituras o se parece a un dominio conocido. Si un enlace se ve normal pero su forma ASCII empieza con xn--, desconfiá.

¿Se pueden usar acentos en una dirección de correo?

El dominio sí, y se puede convertir a xn-- para cualquier servidor. La parte antes de la arroba es otra historia: con caracteres no ASCII necesita que todos los servidores del camino soporten SMTPUTF8 (RFC 6531), y no tiene una forma Punycode equivalente.

¿Por qué mi dominio con mayúsculas cambió?

Los nombres de dominio no distinguen mayúsculas, y IDNA pasa todo a minúsculas antes de codificar: MÜNCHEN.de y münchen.de son el mismo dominio, xn--mnchen-3ya.de. Punycode puro sí conserva las mayúsculas, por eso el convertidor sin prefijo da resultados distintos.