محول IDN Punycode

حوّل IDN بسهولة إلى Punycode والعكس.

5 من 2 تقييمات
محول IDN Punycode

محول IDN Punycode أداة مجانية تحوّل أسماء النطاقات المدوّلة إلى صيغة Punycode المتوافقة مع ASCII، كما تفك ترميز Punycode وتعيده إلى نص Unicode مقروء.

ما Punycode، ولماذا نحتاج إليه؟

Punycode جزء من عملية التحويل في IDNA من تسميات U المعتمدة على Unicode إلى تسميات A المتوافقة مع ASCII. ويتيح تمرير الأسماء التي تتضمن أحرفا مثل ü أو é أو 漢 عبر أنظمة صُممت في الأصل للتعامل مع الأحرف اللاتينية الأساسية والأرقام والواصلات.

تبدأ تسمية A في IDNA بالبادئة xn--. وتخبر هذه البادئة التطبيقات المتوافقة مع IDNA بأن الأحرف المتبقية تمثل تسمية U بترميز Punycode. تظل النقاط فواصل بين التسميات، لذلك يُحوّل كل جزء من النطاق بصورة مستقلة.

يُستخدم Punycode ضمن نظام أسماء النطاقات المدوّلة في التطبيقات، المعروف اختصارا باسم IDNA. يتولى IDNA أيضا التحقق من الصلاحية ومعالجة الأحرف، بينما يوفّر Punycode التمثيل المتوافق مع ASCII لتسمية Unicode المؤهلة.

Punycode ترميز وليس تشفيرا. يستطيع أي شخص إعادة صيغة ASCII إلى Unicode، لذلك فهو لا يوفّر أي سرية، ويجب ألا تستخدمه مطلقا لإخفاء المعلومات.

رسم توضيحي: يمر النص عبر أداة محول IDN Punycode في الاتجاهين

كيف أحوّل اسم نطاق مدوّلا؟

أدخل نص Unicode في التحويل إلى Punycode/ASCII، أو أدخل تسميات A بصيغة ASCII في التحويل إلى IDN/نص. ستظهر النتيجة المقابلة في Punycode/ASCII أو IDN/نص.

  1. انسخ اسم النطاق أو التسمية المطلوب تحويلها فقط، من دون علامات اقتباس حولها.
  2. استخدم التحويل إلى Punycode/ASCII مع نص Unicode الذي يحتوي على أحرف بعلامات تشكيل أو أحرف غير لاتينية.
  3. استخدم التحويل إلى IDN/نص مع تسميات A بصيغة ASCII.
  4. تحقق من كل تسمية محوّلة قبل إضافتها إلى DNS أو إعدادات البريد الإلكتروني أو تهيئة التطبيقات.
أداة محول IDN Punycode على digily.link مع نموذج الإدخال

يستخدم المحول دالتي PHP، وهما idn_to_ascii وidn_to_utf8. تتم المعالجة على الخادم، وتُرسل مدخلاتك إليه عبر HTTPS من دون تخزينها.

أمثلة عملية لتحويل النطاقات

يوضح هذا المثال البسيط العلاقة بين الاسم المعروض وصيغته المتوافقة مع DNS.

الإدخال münchen.de

الإخراج xn--mnchen-3ya.de

عند تحويل الناتج في الاتجاه المعاكس، تحصل على münchen.de. لا تحتاج تسمية de المكوّنة من أحرف ASCII فقط إلى تحويل، بينما تصبح التسمية التي تحتوي على ü تسمية تبدأ بالبادئة xn--.

يجب أن تكون المدخلات نصا صالحا لاسم نطاق. ويتعامل التنسيق الأساسي مع الحالات الشائعة كما يلي:

  • الأحرف ذات العلامات والأحرف غير اللاتينية: تُمثل تسميات Unicode المؤهلة بصيغة ASCII عبر IDNA وPunycode.
  • النقاط: تفصل كل نقطة بين تسميتين. لذلك يمكن أن يجمع النطاق بين تسميات ASCII عادية وتسميات مرمّزة.
  • الأرقام والواصلات العادية: هذه الرموز متوافقة أصلا مع ASCII، وتظل مقروءة عادة، مع خضوعها لقواعد بنية أسماء النطاقات.
  • المسافات: لا تصلح المسافات داخل تسميات مضيف DNS العادية. إذا وُجدت مسافة بالخطأ، فاحذفها بدلا من توقع احتفاظ Punycode بها كجزء من النطاق.
  • علامات الترقيم: تفصل النقطة بين التسميات، أما الأحرف التابعة لمسار URL أو المنفذ أو سلسلة الاستعلام فليست جزءا من اسم المضيف.
  • المدخلات الفارغة أو الطويلة جدا: لا تحتوي القيمة الفارغة على نطاق يمكن تحويله. كذلك يحدد DNS طول كل تسمية مرمّزة بما لا يتجاوز 63 ثمانية، لذا قد تصبح تسمية Unicode التي تبدو قصيرة أطول من المسموح بعد تحويلها.
مثال على نتيجة أنتجتها أداة محول IDN Punycode

لماذا يفشل تحويل Punycode أو يعطي نصا غير متوقع؟

يفشل التحويل عادة لأن المدخل ليس نص IDN صالحا، أو لأنه يحتوي على تسمية A غير صحيحة، أو لأنه خضع لترميز آخر أولا. عند التحويل إلى IDN/Text، قد يظل إدخال ASCII العادي الذي لا يمثل تسمية A كما هو. قبل تعديل الأحرف يدويا، تحقق مما إذا كان المصدر يحتوي على تسميات U بصيغة Unicode، أو تسميات A بصيغة ASCII، أو اسم مضيف مرمّزا ضمن URL.

  • تسميات A غير الصحيحة أو استخدام ترميز آخر: قد يفشل تحويل تسمية xn-- غير الصحيحة. نصوص Base64 والقيم السداسية العشرية وعناوين URL المرمّزة بالنسبة المئوية ليست Punycode.
  • الأحرف غير المدعومة: يستطيع Punycode تمثيل قيم Unicode، لكن قواعد IDNA وسجلات النطاقات قد ترفض أحرفا أو تركيبات أو أنظمة كتابة معينة.
  • تجاوز طول التسمية: يحدد DNS طول كل تسمية مرمّزة بما لا يتجاوز 63 ثمانية، لذلك قد تصبح تسمية Unicode أطول من المسموح بعد تحويلها.
  • المدخلات الجزئية: قد تصبح القيمة غير صالحة إذا نسخت أقواسا أو رقم منفذ أو جزءا من سمة HTML مع اسم المضيف.
  • المدخلات المرمّزة مرتين: إذا رُمّزت أحرف نطاق Punycode بالنسبة المئوية بشكل صريح أو غير قياسي، فقد تظهر في صورة متتاليات مئوية. فك طبقة ترميز URL أولا باستخدام فك ترميز URL، ثم حوّل النطاق الناتج.
  • بيانات ثنائية بدلا من النص: يعمل تحويل IDN مع نصوص أسماء النطاقات بصيغة Unicode. قد تفشل بايتات الملفات العشوائية في التحقق من الصلاحية، أو تنتج أحرفا بلا معنى عند التعامل معها كنص.

أين يمكن أن أصادف Punycode؟

ستصادف Punycode أساسا في أسماء النطاقات وسجلات DNS وطريقة تعامل المتصفحات مع العناوين والأنظمة التي تخزّن أسماء المضيفين بصيغة ASCII. قد يعرض المتصفح الاسم المدوّل المقروء، أو يحتفظ بصيغة xn--، وفقا لقواعد الأمان لديه والأحرف المستخدمة.

يمكن أن تستخدم عناوين البريد الإلكتروني Punycode في جزء النطاق الواقع بعد علامة @. لكنه لا يرمّز اسم صندوق البريد قبل علامة @. قد تتضمن حمولات JSON وسلاسل الاستعلام Punycode عندما تحمل اسم مضيف، لكن بنية JSON وسلاسل الاستعلام لا تتطلب استخدام Punycode مع النصوص عموما.

تستخدم معرّفات URI للبيانات عادة الترميز بالنسبة المئوية أو Base64 لمحتواها. ولا يظهر Punycode فيها إلا إذا احتوى النص المضمّن على اسم مضيف مدوّل. وبالمثل، استخدم مشفّر URL لقيم المسار أو الاستعلام، واستخدم Punycode لاسم المضيف نفسه.

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

هل يمكنني لصق عنوان URL كاملا في محول IDN؟

الأكثر أمانا أن تستخرج اسم المضيف وتحوّل هذا الجزء وحده. لكل من المخطط والمنفذ والمسار والجزء وسلسلة الاستعلام قواعد بنية منفصلة، وقد تحتاج الأحرف في هذه الأقسام إلى ترميز URL بدلا من Punycode.

هل وجود تسمية xn-- في اسم النطاق يعني أن الموقع غير آمن؟

لا. تستخدم نطاقات مدوّلة مشروعة كثيرة تسميات xn--. لكن يمكن استغلال أحرف متشابهة بصريا من أنظمة كتابة مختلفة لإنشاء أسماء مضللة، لذا تحقق من التهجئة بعد فك الترميز ومن الجهة التي تتوقعها قبل إدخال كلمات المرور أو بيانات الدفع.

هل يمكن استخدام الرموز التعبيرية في نطاق Punycode؟

لا يُسمح بالرموز التعبيرية في تسميات نطاقات IDNA، رغم أن خوارزمية Punycode تستطيع ترميز نقاطها البرمجية. وقد تفرض سياسات سجل النطاق قيودا إضافية على أنظمة الكتابة والرموز المسموح بها.

لماذا يعرض المتصفح Punycode بدلا من Unicode؟

قد تحتفظ المتصفحات بصيغة ASCII عندما تجمع التسمية بين أنظمة كتابة مختلفة، أو تتضمن أحرفا مرتبطة بانتحال الهوية، أو لا تستوفي سياسة العرض لديها. هذا إجراء وقائي في العرض، وليس دليلا على أن التحويل غير صحيح.

هل سيعمل الاسم المحوّل حتما في DNS؟

لا. نجاح التحويل لا يثبت أن النطاق مسجّل أو متاح أو مسموح به لدى السجل المعني. قبل استخدام النتيجة، تحقق من طول التسمية، وراجع تهجئتها المقروءة، وتأكد من أن السجل يقبل الأحرف المستخدمة.

الأدوات الشائعة