डोमेन, ईमेल या URL
अंतरराष्ट्रीय डोमेन नामों (IDN) को उनके Unicode रूप, जैसे ñandú.com.ar, और DNS द्वारा उपयोग किए जाने वाले Punycode वाले ASCII रूप, जैसे 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.deIDNA2008 में जर्मन ß एक मान्य अक्षर है और एनकोड होता है। पुराने मानक में यह 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, वेब सर्वर और सर्टिफ़िकेट में कौन-सा रूप उपयोग करूँ?

सभी तकनीकी जगहों पर xn-- वाला ASCII रूप: DNS रिकॉर्ड, nginx का server_name, Apache का ServerName, सर्टिफ़िकेट के SAN और Host हेडर। Unicode रूप केवल लोगों को दिखाने के लिए है; ब्राउज़र क्वेरी करने से पहले उसे बदल देते हैं।

होमोग्राफ हमला क्या है?

यह किसी दूसरी वर्णमाला के अक्षरों का उपयोग करके ऐसा डोमेन रजिस्टर करना है जो किसी अन्य डोमेन जैसा ही दिखे, जैसे लैटिन a की जगह सिरिलिक a। जब कोई लेबल लिपियाँ मिलाता है या किसी जाने-माने डोमेन जैसा दिखता है, तो ब्राउज़र xn-- रूप दिखाते हैं। अगर कोई लिंक सामान्य दिखता है पर उसका ASCII रूप xn-- से शुरू होता है, तो सावधान रहें।

क्या ईमेल पते में हिंदी या विशेष अक्षर उपयोग किए जा सकते हैं?

डोमेन में हाँ, और उसे किसी भी सर्वर के लिए xn-- में बदला जा सकता है। @ से पहले वाला भाग अलग मामला है: गैर-ASCII वर्णों के लिए रास्ते के सभी सर्वरों का SMTPUTF8 (RFC 6531) सपोर्ट करना ज़रूरी है, और इस भाग का कोई समकक्ष Punycode रूप नहीं है।

बड़े अक्षरों वाला मेरा डोमेन क्यों बदल गया?

डोमेन नाम बड़े-छोटे अक्षरों में भेद नहीं करते, और IDNA एनकोड करने से पहले सब कुछ छोटे अक्षरों में बदल देता है: MÜNCHEN.de और münchen.de एक ही डोमेन हैं, xn--mnchen-3ya.de। वहीं शुद्ध Punycode बड़े अक्षरों को बनाए रखता है, इसलिए बिना प्रीफ़िक्स वाला कन्वर्टर अलग परिणाम देता है।