WebProxy 바이패스 항목을 정규식으로 작성하기
셸 스타일 와일드카드 대신 이스케이프된 점과 명시적인 호스트 이름 경계를 사용해 유효한 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
)
이스케이프된 점은 문자 그대로의 점과 일치합니다. 반복되는 호스트 이름 레이블 그룹은 기준 도메인과 그 아래 이름을 모두 허용합니다. 앵커는 office.example.other.test 같은 이름을 이 규칙 밖에 둡니다. 작은따옴표로 묶은 PowerShell 문자열은 식이 사용하는 역슬래시를 그대로 보존합니다.
현재 .NET 구현은 이 식을 대상의 스킴, 호스트 이름, 기본이 아닌 포트와 대조합니다. 요청 경로나 쿼리 문자열은 포함하지 않습니다. 따라서 선택적인 포트 그룹은 기본이 아닌 포트도 허용합니다. 정책이 특정 서비스를 요구한다면 이 그룹을 제거하거나 좁히십시오.
이 예에서 BypassProxyOnLocal은 false이므로 정규식 정책을 그 추가 바이패스 설정과 별도로 검사할 수 있습니다. 결과로 나온 프록시 개체를 그것을 사용해야 하는 HTTP 클라이언트에 연결합니다. 바이패스 도메인 밖에서 허용된 공개 URL 테스트에는 HTTP proxy list의 HTTP 항목이 그 주소를 제공할 수 있으며, 프록시 계정은 구성하지 않습니다.
IsBypassed를 대표적인 Uri 값과 함께 사용해 라우팅 결정을 검사합니다. 기준 도메인, 하위 도메인 하나, 무관한 외부 호스트, 그리고 혼동을 주는 더 긴 접미사입니다. true 결과는 직접 액세스가 선택되었음을 뜻하며, 직접 대상에 도달할 수 있음을 증명하지는 않습니다.