PowerShell-da proksi xost nomini IDNA ASCII ga aylantirish
Proksi so'nggi nuqtasi foydalanuvchisi Unicode xost nomini hal qila olmasa, xalqaro domen nomini IDNA ASCII shakliga aylantiring.
Proksi xost nomi ko'rsatiladigan shaklida xalqaro belgilarni o'z ichiga olishi mumkin. IDNA ASCII shaklini kutayotgan mijoz yoki hal qiluvchi butun URL ning ixtiyoriy foiz-escaped nusxasini emas, balki o'sha xost nomining aylantirilganini talab qiladi.
PowerShell-da .NET aylantirishni bevosita taqdim etadi:
$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 faqat domen nomi. Port va sxema alohida qoladi. Hosil bo'lgan proksini so'rov yuborayotgan HTTP mijozida ishlating.
Allaqachon tahlil qilingan Uri uchun IdnHost uning IDNA ga mos xost nomi tasvirini taqdim etadi. Allaqachon kodlangan yorliqni qayta-qayta kodlash o'rniga asl so'nggi nuqtani ko'rib chiqing.
Hal qilish xatosida proksi xost nomini manzil xost nomidan ajrating. Birini aylantirish ikkinchisidagi imlo xatosini yoki yo'q DNS yozuvini tuzatmaydi. Sertifikat identifikatsiyasi uchun ham mo'ljallangan xost nomini saqlang; uni ixtiyoriy IP manzil bilan almashtirish ulanishning boshqa qismini o'zgartiradi.