System.Net.WebProxy-luokan BypassList-argumentti sisältää säännöllisiä lausekkeita. Kuvio kuten *.office.example ei ole kelvollinen, koska alussa olevalla tähdellä ei ole edeltävää lauseketta toistettavaksi.

HTTP- ja HTTPS-pyynnöille osoitteeseen office.example ja sen aliverkkotunnuksiin PowerShell-kokoonpano voi käyttää seuraavaa:

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

Escapetut pisteet vastaavat kirjaimellisia pisteitä. Toistettu isäntänimen tunnisteen ryhmä sallii sekä perusverkkotunnuksen että sen alla olevat nimet. Ankkurit pitävät nimen kuten office.example.other.test tämän säännön ulkopuolella. Yksittäisiin lainausmerkkeihin kirjoitetut PowerShell-merkkijonot säilyttävät lausekkeen käyttämät kenoviivat.

Nykyinen .NET-toteutus vertaa näitä lausekkeita kohteen skeemaan, isäntänimeen ja ei-oletusporttiin. Se ei sisällä pyynnön polkua eikä kyselymerkkijonoa. Siksi valinnainen porttiryhmä sallii myös ei-oletusportit; poista tai kavenna sitä, jos käytäntö vaatii tietyn palvelun.

BypassProxyOnLocal on tässä esimerkissä false, jotta regex-käytäntöä voidaan tarkastella erillään tuosta lisäohitusasetuksesta. Liitä tuloksena oleva välityspalvelinobjekti siihen HTTP-asiakasohjelmaan, jonka sitä pitäisi käyttää. Sallittua julkisen URL:n testiä varten ohitusverkkotunnuksen ulkopuolella HTTP-merkintä HTTP proxy list -luettelosta voi tarjota osoitteensa ilman määritettyä välityspalvelintiliä.

Käytä IsBypassed-metodia edustavilla Uri-arvoilla reitityspäätöksen tarkasteluun: perusverkkotunnus, yksi aliverkkotunnus, asiaankuulumaton ulkoinen isäntä ja harhaanjohtava pidempi pääte. Tuloksen true tarkoittaa, että suora käyttö valittiin; se ei todista, että suora kohde on tavoitettavissa.

Aiheeseen liittyvät artikkelit