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 ਪਤੇ ਨਾਲ ਬਦਲਣ ਨਾਲ ਕਨੈਕਸ਼ਨ ਦਾ ਹੋਰ ਹਿੱਸਾ ਬਦਲ ਜਾਂਦਾ ਹੈ।