تبدیل نام میزبان پروکسی به IDNA ASCII در PowerShell
وقتی مصرفکننده یک نقطه پایانی پروکسی نمیتواند نام میزبان یونیکد را حل کند، نام دامنه بینالمللی را به شکل 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 دلخواه بخش دیگری از اتصال را تغییر میدهد.