قد يحتوي اسم مضيف الوكيل على محارف دولية في شكله المعروض. ويحتاج العميل أو المحلِّل الذي يتوقع صيغة 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 عشوائي يغيّر جزءًا آخر من الاتصال.

مقالات ذات صلة