WebProxy بائی پاس اندراجات کو ریگولر اظہار کے طور پر لکھیں
shیل طرز wildcard کی بجائے escape شدہ نقطوں اور واضح ہوسٹ نام کی حدوں کے ساتھ درست System.Net.WebProxy بائی پاس اظہار بنائیں۔
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
)
escape شدہ نقطے لفظی نقطوں سے ملتے ہیں۔ دہرایا جانے والا ہوسٹ نام لیبل گروپ بنیادی ڈومین اور اس کے نیچے موجود نام دونوں کی اجازت دیتا ہے۔ اینکر office.example.other.test جیسے نام کو اس قاعدے سے باہر رکھتے ہیں۔ واحد اقتباس والی PowerShell تاریں اظہار کے استعمال کردہ بیک سلیش محفوظ رکھتی ہیں۔
موجودہ .NET عمل درآمد ان اظہاروں کا موازنہ منزل کی اسکیم، ہوسٹ نام اور غیر ڈیفالٹ پورٹ سے کرتا ہے۔ اس میں درخواست کا راستہ یا کوئری سٹرنگ شامل نہیں۔ اس لیے اختیاری پورٹ گروپ غیر ڈیفالٹ پورٹوں کی بھی اجازت دیتا ہے؛ اگر پالیسی مخصوص سروس کا تقاضا کرے تو اسے ہٹا دیں یا تنگ کریں۔
اس مثال میں BypassProxyOnLocal false ہے تاکہ regex پالیسی کو اس اضافی بائی پاس سیٹنگ سے الگ دیکھا جا سکے۔ نتیجے میں بننے والی پراکسی شے کو اس HTTP کلائنٹ سے جوڑیں جسے یہ استعمال کرنی چاہیے۔ بائی پاس ڈومین سے باہر اجازت شدہ عوامی URL ٹیسٹ کے لیے، HTTP proxy list سے ایک HTTP اندراج اپنا پتہ دے سکتا ہے، بغیر کوئی پراکسی اکاؤنٹ ترتیب دیے۔
راؤٹنگ فیصلے کا جائزہ لینے کے لیے نمائندہ Uri قدروں کے ساتھ IsBypassed استعمال کریں: بنیادی ڈومین، ایک ذیلی ڈومین، غیر متعلق بیرونی ہوسٹ اور گمراہ کن لمبا لاحقہ۔ true نتیجے کا مطلب ہے کہ براہ راست رسائی منتخب کی گئی؛ یہ ثابت نہیں کرتا کہ براہ راست منزل قابل رسائی ہے۔