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 చిరునామాతో భర్తీ చేయడం కనెక్షన్లోని మరో భాగాన్ని మారుస్తుంది.