Zum Hauptinhalt springen

PAC (Proxy auto-config) Grammatik

info

Wenn das Dokument Fehler enthält oder Sie Vorschläge haben, hinterlassen Sie bitte eine Nachricht im Mudfish-Forum (https://forums.mudfish.net). Die hier genannten Beispiele und Erklärungen wurden durch Übersetzung oder Bezugnahme auf den Inhalt der folgenden Website verfasst.

Für die Browsererweiterung Mudfish wird das Dateiformat PAC (Proxy auto-config) unterstützt.

PAC-Funktionen​

Browser, die das PAC-Format unterstützen, unterstützen normalerweise Funktionen, die im durch Netscape angegebenen Standardformat dargestellt werden.

Allerdings laufen diese Funktionen üblicherweise innerhalb von sandbox ab und laufen daher in einer streng eingeschränkten Umgebung. Beispielsweise ist die Anzeige von User Agent-Informationen vollständig blockiert.

Nachfolgend finden Sie eine Beschreibung der in der sandbox-Umgebung zulässigen Funktionen.

dnsDomainIs​

Hostname wird überprüft und bei Übereinstimmung wird true zurückgegeben. Wird normalerweise zur Überprüfung außergewöhnlicher Einzelfälle hostname verwendet.

   // 만약 hostname 이 google.com 과 같거나 하위 주소들이 매치된다면
// (예를 들어 maps.google.com, www.google.com),
// 브라우저로 하여금 proxy 을 거치지 않고 직접 접속하게 합니다.

if (dnsDomainIs(host, "google.com"))
return "DIRECT";

shExpMatch​

Hostname oder URL wird mit der durch den shell-Ausdruck angegebenen Zeichenfolge verglichen und bei einer Übereinstimmung wird true zurückgegeben.

   // 모든 request 들 (.local 로 끝나는 모든 hostname 에 해당) 이
// 브라우저로 하여금 proxy 을 거치지 않고 직접 접속하게 합니다.

if (shExpMatch(url, "*.local"))
return "DIRECT";

// vpn.domain.com 에 접속할려고 하거나
// http://abcdomain.com/folder/ 하위의 모든 폴더 혹은 파일에 접속하는
// 요청들을 proxy 경유없이 직접 접속합니다.

if (shExpMatch(host, "vpn.domain.com") ||
shExpMatch(url, "http://abcdomain.com/folder/*"))
return "DIRECT";

isInNet​

Diese Funktion prüft IP address in hostname und gibt true zurück, wenn es unter einem bestimmten subnet vorhanden ist. Wenn hostname als Argument übergeben wird, erfolgt die Konvertierung in IP über DNS resolving.

   // 만약 요청한 hostname 의 IP 주소가 (DNS resolving 후) 인자로 넘겨진
// IP 대역에 포함되는 것이면 직접 접속합니다.

if (isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0"))
return "DIRECT";

myIpAddress​

Gibt die IP-Adresse meines aktuellen Computers zurück.

   // 만약 나의 컴퓨터가 특정 IP 대역에 속할 경우 proxy 10.10.5.1 (포트는 8080)
// 를 통해 요청하도록 합니다.

if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
return "PROXY 10.10.5.1:8080";

dnsResolve​

Konvertieren Sie die Adresse hostname über DNS resolving in die Adresse IP.

   // 만약 요청한 host 의 IP 가 지정한 범위에 속할 경우 직접 접속하도록
// 합니다.

if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") ||
isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ||
isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
return "DIRECT";

isPlainHostName​

Wenn hostname keine hat. (dot) Wenn es keine Zeichen enthält, wird true zurückgegeben. Es bezieht sich beispielsweise auf etwas wie http://intranet und kann normalerweise beim Zugriff auf eine interne Netzwerk-Webadresse verwendet werden.

   // 만약 사용자가 plain hostname (예를 들면, http://intranet/ 혹은
// http://webserver-name01/) 를 요청할 경우, 직접 접속하도록 합니다.

if (isPlainHostName(host))
return "DIRECT";

localHostOrDomainIs​

Hostname wird überprüft und wenn die hostname-Teile übereinstimmen, wird true zurückgegeben.

   // 만약 요청한 hostname 이 "www" 혹은 "www.google.com" 일 경우, 직접
// 접속합니다.

if (localHostOrDomainIs(host, "www.google.com"))
return "DIRECT";

isResolvable​

Hostname wird in die IP-Adresse konvertiert und bei Erfolg wird true zurückgegeben.

Wenn der Domainname nicht korrekt aufgelöst werden kann, kann der Browser kurzzeitig einfrieren. Verwenden Sie diese Funktion daher mit Bedacht.

   // 만약 요청한 hostname 이 DNS 서버로 부터 resolving 이 될 수 있다면,
// proxy1.example.com 프록시를 통해 요청합니다.

if (isResolvable(host))
return "PROXY proxy1.example.com:8080";

dnsDomainLevels​

Überprüfen Sie Hostname und sehen Sie, wie viele. Gibt zurück, ob (dot) vorhanden ist. Beispielsweise kann damit ein interner Netzwerk-Webserver als Ausnahme angegeben werden.

   // 만약 hostname 이 . (dot) 을 하나라도 포함하고 있으면 proxy1.example.com
// 프록시를 통해 접속하고 그렇지 않으면 직접 접속합니다.

if (dnsDomainLevels(host) > 0)
return "PROXY proxy1.example.com:8080";
else
return "DIRECT";

weekdayRange​

Es kann beim Erstellen von rule basierend auf der Zeit verwendet werden. Es kann beispielsweise verwendet werden, wenn Sie die Einstellung proxy nur an einem bestimmten Tag zurückgeben möchten.

   // 만약 월요일부터 금요일 사이에는 proxy1.example.com 프록시를 사용하도록
// 하고 그렇지 않을 경우는 직접 인터넷에 접속하도록 합니다.

if (weekdayRange("MON", "FRI"))
return "PROXY proxy1.example.com:8080";
else
return "DIRECT";

dateRange​

Es kann beim Erstellen von rule basierend auf der Zeit verwendet werden. Es kann beispielsweise verwendet werden, wenn Sie proxy nur auf einen bestimmten Monat anwenden möchten.


// 만약 1월부터 3월까지는 proxy1.example.com 프록시를 사용하도록 설정하고
// 그렇지 않을 경우는 직접 접속하도록 조치합니다.

if (dateRange("JAN", "MAR"))
return "PROXY proxy1.example.com:8080";
else
return "DIRECT";

timeRange​

Dies kann verwendet werden, wenn Sie proxy nur zu bestimmten Zeiten verwenden möchten.

   // 오직 아침 8 시부터 오후 6 시까지만 proxy1.example.com 을 사용하도록
// 하고 그렇지 않을 경우는 직접 접속합니다.

if (timeRange(8, 18))
return "PROXY proxy1.example.com:8080";
else
return "DIRECT";

alert​

Diese Funktion war nicht vorhanden, als das PAC-Format zum ersten Mal definiert wurde, es handelt sich jedoch um eine Funktion, die in den Browsern Internet Explorer und Firefox für troubleshooting definiert wurde.

   // 브라우저의 error 콘솔창에 DNS resolving 한 결과를 출력하도록 합니다.

resolved_host = dnsResolve(host);
alert(resolved_host);