Tulis entri bypass WebProxy sebagai ekspresi reguler
Bangun ekspresi bypass System.Net.WebProxy yang valid dengan titik yang di-escape dan batas nama host eksplisit alih-alih wildcard gaya shell.
Argumen BypassList pada System.Net.WebProxy berisi ekspresi reguler. Pola seperti *.office.example tidak valid karena tanda bintang di awal tidak memiliki ekspresi sebelumnya untuk diulang.
Untuk permintaan HTTP dan HTTPS ke office.example dan subdomainnya, konfigurasi PowerShell dapat menggunakan:
$bypass = @('^https?://([a-z0-9-]+\.)*office\.example(:[0-9]+)?$')
$proxy = [System.Net.WebProxy]::new(
'http://proxy.example:8080',
$false,
[string[]]$bypass
)
Titik yang di-escape cocok dengan titik literal. Grup label nama host yang diulang mengizinkan domain dasar maupun nama di bawahnya. Jangkar menjaga nama seperti office.example.other.test di luar aturan ini. String PowerShell dengan kutip tunggal mempertahankan garis miring terbalik yang dipakai ekspresi.
Implementasi .NET saat ini mencocokkan ekspresi ini dengan skema, nama host, dan porta non-standar tujuan. Implementasi ini tidak menyertakan jalur permintaan atau string kueri. Karena itu grup porta opsional juga mengizinkan porta non-standar; hapus atau persempit jika kebijakan mensyaratkan layanan tertentu.
BypassProxyOnLocal bernilai false pada contoh ini agar kebijakan regex dapat diperiksa terpisah dari pengaturan bypass tambahan itu. Lampirkan objek proksi yang dihasilkan ke klien HTTP yang seharusnya memakainya. Untuk uji URL publik yang diizinkan di luar domain bypass, entri HTTP dari HTTP proxy list dapat menyediakan alamatnya, tanpa akun proksi yang dikonfigurasi.
Gunakan IsBypassed dengan nilai Uri yang representatif untuk memeriksa keputusan perutean: domain dasar, satu subdomain, host eksternal yang tidak terkait, dan akhiran lebih panjang yang menyesatkan. Hasil true berarti akses langsung dipilih; itu tidak membuktikan bahwa tujuan langsung dapat dijangkau.