نطاقات أو عناوين بريد أو URL
حوّل أسماء النطاقات الدولية (IDN) بين صيغة Unicode، مثل ñandú.com.ar، وصيغة ASCII المرمّزة بـ Punycode التي يستخدمها DNS، مثل xn--and-6ma2c.com.ar. تكتشف الأداة الاتجاه تلقائيًا، وتقبل عناوين البريد وعناوين URL الكاملة، وتحذّرك عندما يخلط نطاق بين أنظمة كتابة لينتحل صفة نطاق آخر.
حتى 500 سطر. في عناوين البريد يُحوَّل النطاق فقط، وفي URL يُحوَّل المضيف فقط.
النتيجة
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 → ASCIIبريد
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

التسمية مكتوبة بالكامل بحروف سيريلية أو يونانية تبدو مطابقة للحروف اللاتينية. قد تنتحل صفة نطاق معروف: تحقّق من صيغة xn-- قبل أن تثق بالرابط.

Punycode بدون بادئة (RFC 3492)

يرمّز أي نص أو يفك ترميزه بخوارزمية Punycode الخالصة، دون البادئة xn-- ودون تطبيع النطاقات. مفيد لتصحيح أخطاء تنفيذك الخاص.

النتيجةmaana-pta

كيف يعمل

لا يقبل DNS إلا أحرف ASCII والأرقام والشرطات، لذا لا يمكن لنطاق مثل ñandú.com.ar أن يُنقل كما هو. تحلّ أسماء النطاقات الدولية (IDN) ذلك باستخدام Punycode (RFC 3492): كل تسمية تحتوي على أحرف خارج ASCII تُرمَّز بخوارزمية تحتفظ بالأحرف العادية وتُلحق في النهاية مواضع الأحرف الخاصة، ثم تُسبَق بالبادئة xn--. وهكذا يصبح ñandú هو xn--and-6ma2c.

قبل الترميز، يطبّع IDNA الاسم: يحوّله إلى أحرف صغيرة، ويوحّد صيغ Unicode، ويحوّل النقاط البديلة مثل النقطة اليابانية 。. تستخدم هذه الأداة التعيين نفسه (UTS #46) الذي يطبّقه المتصفح عند فتح عنوان، لذا تطابق النتيجة ما يُطلب من DNS في النهاية. في عناوين البريد يُحوَّل النطاق فقط، وفي URL يُحوَّل المضيف فقط.

كما تفصّل كل تسمية مع طولها وأنظمة الكتابة التي تستخدمها، وتحذّر عندما يخلط نطاق بين الأبجديات أو يُكتب بحروف سيريلية أو يونانية مطابقة للاتينية: وهذا أساس هجمات التشابه الشكلي، حيث يبدو الرابط وكأنه لموقع معروف.

أمثلة

ñandú.com.arxn--and-6ma2c.com.arتتغيّر فقط التسمية التي تحتوي على أحرف خاصة؛ ويبقى com وar كما هما. هذه هي الصيغة التي يجب إدخالها في DNS وفي SAN الخاصة بالشهادة.
faß.dexn--fa-hia.deفي IDNA2008 يُعدّ الحرف الألماني ß حرفًا صالحًا ويُرمَّز. أما في المعيار السابق فكان يتحوّل إلى ss ويشير إلى fass.de، وهو نطاق مختلف: لذلك تحلّ بعض الأنظمة القديمة اسمًا آخر.
аррӏе.comxn--80ak6aa92e.comنطاق التشابه الشكلي الذي نشره Xudong Zheng عام 2017: خمسة أحرف سيريلية تبدو تمامًا مثل apple. ومنذ ذلك الحين يعرض Chrome وFirefox هذا النوع من النطاقات بصيغة xn--.
пример.рфxn--e1afmkfd.xn--p1aiيمكن أن تكون نطاقات المستوى الأعلى دولية أيضًا: ‎.рф هو نطاق روسيا بالسيريلية، ويُكتب في DNS على النحو xn--p1ai.

حالات الاستخدام

  • الحصول على صيغة xn-- لنطاق عربي أو ذي حروف معلَّمة لإدخال السجلات في DNS، أو في إعدادات nginx أو Apache، أو في SAN الخاصة بشهادة.
  • معرفة النطاق الحقيقي وراء xn-- يظهر في سجل أو في تقرير تصيّد أو في شريط عنوان المتصفح.
  • فحص رابط مشبوه لاكتشاف الحروف السيريلية أو اليونانية التي تحاكي الحروف اللاتينية.
  • تحويل نطاق عنوان بريد إلكتروني دولي لخادم لا يدعم SMTPUTF8.
  • التحقق من أن النطاق الدولي لا يتجاوز 63 حرفًا لكل تسمية بعد ترميزه.

الأسئلة الشائعة

ماذا تعني البادئة xn--؟

إنها بادئة ACE (ASCII Compatible Encoding) التي تشير إلى أن التسمية مكتوبة بـ Punycode. التسميات التي تحتوي على شرطات في الموضعين الثالث والرابع محجوزة لهذه البادئات، لذا لا تسمح جهات التسجيل بإنشاء نطاق يبدأ بـ xn-- ما لم يكن IDN صالحًا.

أي صيغة أستخدم في DNS وخادم الويب والشهادة؟

صيغة ASCII مع xn-- في جميع المواضع التقنية: سجلات DNS، وserver_name في nginx، وServerName في Apache، وSAN الخاصة بالشهادة، وترويسات Host. صيغة Unicode هي فقط لعرضها على الأشخاص؛ فالمتصفحات تحوّلها قبل إجراء الاستعلام.

ما هو هجوم التشابه الشكلي (homograph)؟

هو تسجيل نطاق يبدو مطابقًا لنطاق آخر باستخدام حروف من أبجدية أخرى، مثل حرف a السيريلي بدلًا من اللاتيني. تعرض المتصفحات صيغة xn-- عندما تخلط تسمية بين أنظمة الكتابة أو تشبه نطاقًا معروفًا. إذا بدا الرابط عاديًا لكن صيغته ASCII تبدأ بـ xn--، فكن حذرًا.

هل يمكن استخدام أحرف عربية أو معلَّمة في عنوان بريد إلكتروني؟

في النطاق نعم، ويمكن تحويله إلى xn-- لأي خادم. أما الجزء الذي يسبق @ فأمر مختلف: فالأحرف غير ASCII تتطلب أن تدعم جميع الخوادم على المسار SMTPUTF8 (RFC 6531)، وليس لهذا الجزء صيغة Punycode مكافئة.

لماذا تغيّر نطاقي المكتوب بأحرف كبيرة؟

لا تميّز أسماء النطاقات بين الأحرف الكبيرة والصغيرة، ويحوّل IDNA كل شيء إلى أحرف صغيرة قبل الترميز: MÜNCHEN.de وmünchen.de هما النطاق نفسه، xn--mnchen-3ya.de. أما Punycode الخالص فيحتفظ بالأحرف الكبيرة، ولهذا يعطي المحوّل بدون بادئة نتائج مختلفة.