System.Net.WebProxy का BypassList तर्क नियमित अभिव्यक्तियाँ रखता है। *.office.example जैसा पैटर्न अमान्य है क्योंकि शुरुआती तारे के पास दोहराने के लिए कोई पूर्व अभिव्यक्ति नहीं है।

office.example और उसके सबडोमेन पर HTTP और HTTPS अनुरोधों के लिए, एक PowerShell कॉन्फ़िगरेशन यह उपयोग कर सकता है:

$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
    'http://proxy.example:8080',
    $false,
    [string[]]$bypass
)

एस्केप किए गए बिंदु शाब्दिक बिंदुओं से मेल खाते हैं। दोहराया गया होस्टनाम-लेबल समूह आधार डोमेन और उसके नीचे के नाम दोनों को अनुमति देता है। एंकर office.example.other.test जैसे नाम को इस नियम से बाहर रखते हैं। एकल उद्धरण वाली PowerShell स्ट्रिंग अभिव्यक्ति द्वारा उपयोग किए जाने वाले बैकस्लैश को सुरक्षित रखती हैं।

मौजूदा .NET कार्यान्वयन इन अभिव्यक्तियों का मिलान गंतव्य की स्कीम, होस्टनाम और गैर-डिफ़ॉल्ट पोर्ट से करता है। इसमें अनुरोध पथ या क्वेरी स्ट्रिंग शामिल नहीं है। इसलिए वैकल्पिक पोर्ट समूह गैर-डिफ़ॉल्ट पोर्ट की भी अनुमति देता है; यदि नीति किसी विशिष्ट सेवा की माँग करती है तो इसे हटाएँ या संकीर्ण करें।

इस उदाहरण में BypassProxyOnLocal false है ताकि regex नीति को उस अतिरिक्त बायपास सेटिंग से अलग जाँचा जा सके। परिणामी प्रॉक्सी ऑब्जेक्ट को उस HTTP क्लाइंट से जोड़ें जिसे उसका उपयोग करना चाहिए। बायपास डोमेन के बाहर अनुमत सार्वजनिक URL परीक्षण के लिए, HTTP proxy list से एक HTTP प्रविष्टि अपना पता दे सकती है, बिना कोई प्रॉक्सी खाता कॉन्फ़िगर किए।

रूटिंग निर्णय की जाँच के लिए प्रतिनिधि Uri मानों के साथ IsBypassed का उपयोग करें: आधार डोमेन, एक सबडोमेन, एक असंबंधित बाहरी होस्ट और एक भ्रामक लंबा प्रत्यय। true परिणाम का अर्थ है कि सीधा पहुँच चुना गया; यह सिद्ध नहीं करता कि सीधा गंतव्य पहुँच योग्य है।

संबंधित लेख