Zum Hauptinhalt springen

PAC (Proxy auto-config) Syntax

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 einer 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​

Prüft den Hostnamen und gibt bei einer Übereinstimmung true zurück. Damit lassen sich Ausnahmen für bestimmte Hostnamen definieren.

   // Bei google.com oder einer passenden Subdomain (z. B. maps.google.com
// oder www.google.com) stellt der Browser eine direkte Verbindung
// ohne Proxy her.

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

shExpMatch​

Vergleicht den Hostnamen oder die URL mit einem Shell-Muster und gibt bei Übereinstimmung true zurück.

   // Anfragen an Hostnamen mit der Endung .local direkt ohne Proxy senden.

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

// Anfragen an vpn.domain.com sowie Dateien und Unterordner unter
// http://abcdomain.com/folder/ direkt ohne Proxy aufrufen.

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

isInNet​

Prüft, ob eine IP-Adresse zu einem bestimmten Subnetz gehört, und gibt dann true zurück. Wird ein Hostname übergeben, wird er zunächst per DNS in eine IP-Adresse aufgelöst.

   // Direkt verbinden, wenn die per DNS aufgelöste IP-Adresse des Hostnamens
// im angegebenen IP-Bereich liegt.

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

myIpAddress​

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

   // Gehört der eigene Computer zum angegebenen IP-Bereich,
// den Proxy 10.10.5.1 auf Port 8080 verwenden.

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

dnsResolve​

Löst einen Hostnamen per DNS in eine IP-Adresse auf.

   // Direkt verbinden, wenn die IP-Adresse des angefragten Hosts
// in einem der angegebenen Bereiche liegt.

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​

Gibt true zurück, wenn der Hostname keinen Punkt (.) enthält. Es bezieht sich beispielsweise auf etwas wie http://intranet und kann normalerweise beim Zugriff auf eine interne Netzwerk-Webadresse verwendet werden.

   // Einfache Hostnamen wie http://intranet/ oder
// http://webserver-name01/ direkt aufrufen.

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

localHostOrDomainIs​

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

   // Bei den Hostnamen "www" oder "www.google.com" direkt verbinden.

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.

   // Kann DNS den Hostnamen auflösen, den Proxy
// proxy1.example.com verwenden.

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

dnsDomainLevels​

Gibt die Anzahl der Punkte (.) im Hostnamen zurück. Beispielsweise kann damit ein interner Netzwerk-Webserver als Ausnahme angegeben werden.

   // Enthält der Hostname mindestens einen Punkt, proxy1.example.com
// verwenden; andernfalls direkt verbinden.

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

weekdayRange​

Es kann beim Erstellen von zeitabhängigen Regeln verwendet werden. Es kann beispielsweise verwendet werden, wenn Sie die Einstellung proxy nur an einem bestimmten Tag zurückgeben möchten.

   // Von Montag bis Freitag proxy1.example.com verwenden;
// andernfalls direkt mit dem Internet verbinden.

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

dateRange​

Es kann beim Erstellen von zeitabhängigen Regeln verwendet werden. Es kann beispielsweise verwendet werden, wenn Sie proxy nur auf einen bestimmten Monat anwenden möchten.


// Von Januar bis März proxy1.example.com verwenden;
// andernfalls direkt verbinden.

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.

   // Nur von 8 bis 18 Uhr proxy1.example.com verwenden;
// andernfalls direkt verbinden.

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 zur Fehlerbehebung definiert wurde.

   // Das Ergebnis der DNS-Auflösung in der Fehlerkonsole des Browsers ausgeben.

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