PowerShell में प्रॉक्सी होस्टनाम को IDNA ASCII में बदलें
जब प्रॉक्सी एंडपॉइंट का उपभोक्ता यूनिकोड होस्टनाम को हल नहीं कर सकता, तो अंतरराष्ट्रीयकृत डोमेन नाम को उसके IDNA ASCII रूप में बदलें।
प्रॉक्सी होस्टनाम के प्रदर्शित रूप में अंतरराष्ट्रीय वर्ण हो सकते हैं। IDNA ASCII रूप की अपेक्षा करने वाले क्लाइंट या रिज़ॉल्वर को वह होस्टनाम परिवर्तित चाहिए, पूरे URL की कोई मनमानी प्रतिशत-एस्केप्ड प्रति नहीं।
PowerShell में, .NET रूपांतरण सीधे प्रदान करता है:
$mapping = New-Object System.Globalization.IdnMapping
$asciiHost = $mapping.GetAscii($unicodeProxyHost)
$endpoint = New-Object System.UriBuilder
$endpoint.Scheme = 'http'
$endpoint.Host = $asciiHost
$endpoint.Port = 8080
$proxy = New-Object System.Net.WebProxy($endpoint.Uri)
unicodeProxyHost केवल डोमेन नाम है। पोर्ट और स्कीम अलग रहते हैं। अनुरोध करने वाले HTTP क्लाइंट पर परिणामी प्रॉक्सी का उपयोग करें।
पहले से पार्स किए गए Uri के लिए, IdnHost उसका IDNA-संगत होस्टनाम निरूपण प्रदान करता है। पहले से एन्कोड किए गए लेबल को बार-बार एन्कोड करने के बजाय मूल एंडपॉइंट की समीक्षा करें।
रिज़ॉल्यूशन त्रुटि में प्रॉक्सी के होस्टनाम को गंतव्य के होस्टनाम से अलग पहचानें। एक को बदलने से दूसरे की वर्तनी त्रुटि या अनुपस्थित DNS रिकॉर्ड ठीक नहीं होता। प्रमाणपत्र पहचान के लिए भी इच्छित होस्टनाम रखें; इसे मनमाने IP पते से बदलने पर कनेक्शन का दूसरा भाग बदल जाता है।