Lumaktaw sa pangunahing nilalaman

PAC (Proxy auto-config) Syntax

Impormasyon

Kung mayroong error sa dokumento o kung mayroon kang mga mungkahi, mangyaring mag-iwan ng mensahe sa Mudfish Forum (https://forums.mudfish.net). Ang mga halimbawa at paliwanag na binanggit dito ay isinulat sa pamamagitan ng pagsasalin o pagsangguni sa nilalaman ng mga site sa ibaba:

Para sa Mudfish browser extension, sinusuportahan nito ang PAC (Proxy auto-config) file format.

Mga PAC Function​

Ang mga browser na sumusuporta sa PAC format ay karaniwang nakadisenyong sumuporta sa mga function na inilahad sa karaniwang format na tinukoy ng Netscape.

Gayunpaman, dahil karaniwang gumagana ang mga tampok na ito sa loob ng sandbox, pinapatakbo ang mga ito sa isang mahigpit na limitadong kapaligiran. Halimbawa, ganap na hinaharangan ang mga aksyon gaya ng pagsusuri sa impormasyon ng User Agent.

Sa ibaba ay inilalarawan ang mga function na pinapayagan sa loob ng kapaligiran ng sandbox.

dnsDomainIs​

Sinusuri ang hostname at nagbabalik ng true kung magkatugma ang mga ito. Karaniwan itong ginagamit kapag nagsusuri ng mga bukod-tanging indibidwal na hostname.

   // Kung ang hostname ay katumbas ng google.com o tumutugma ang mga sub-address nito
// (halimbawa maps.google.com, www.google.com),
// direktang pakokonektahin ang browser nang hindi dumadaan sa proxy.

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

shExpMatch​

Inihahambing ang hostname o URL sa string na tinukoy bilang shell expression, at nagbabalik ng true kung magkatugma.

   // Ang lahat ng request (tumutugma sa lahat ng hostname na nagtatapos sa .local) ay
// direktang pakokonektahin sa browser nang hindi dumadaan sa proxy.

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

// Direktang kumokonekta nang hindi dumadaan sa proxy para sa mga request na sumusubok kumonekta sa
// vpn.domain.com o nag-a-access sa lahat ng folder o file sa ilalim ng
// http://abcdomain.com/folder/.

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

isInNet​

Sinusuri ng function na ito ang IP address ng hostname at nagbabalik ng true kung umiiral ito sa ilalim ng partikular na subnet. Kung hostname ang ipinasa bilang argument, magsasagawa ito ng IP conversion sa pamamagitan ng DNS resolving.

   // Kung ang IP address ng hiniling na hostname (pagkatapos ng DNS resolving) ay kasama sa
// IP range na ipinasa bilang argument, direktang kokonekta.

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

myIpAddress​

Ibinabalik ang kasalukuyang IP address ng iyong computer.

   // Kung nabibilang ang iyong computer sa isang partikular na IP range, hihilingin ito sa pamamagitan ng
// proxy 10.10.5.1 (port 8080).

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

dnsResolve​

Kino-convert ang hostname sa IP address sa pamamagitan ng DNS resolving.

   // Kung ang IP ng hiniling na host ay nabibilang sa tinukoy na range, direktang
// pakokonektahin ito.

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​

Nagbabalik ng true kung walang anumang karakter na . (dot) ang hostname. Halimbawa ay tulad ng http://intranet; karaniwan itong magagamit kapag nag-a-access ng internal network web address.

   // Kung humiling ang user ng plain hostname (halimbawa, http://intranet/ o
// http://webserver-name01/), direktang pakokonektahin ito.

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

localHostOrDomainIs​

Sinusuri ang hostname at nagbabalik ng true kung magkatugma ang bahagi ng hostname.

   // Kung ang hiniling na hostname ay "www" o "www.google.com", direktang
// kokonekta.

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

isResolvable​

Kino-convert ang hostname sa IP address at nagbabalik ng true kung matagumpay ito.

Kung hindi ma-resolve nang maayos ang domain address, maaaring pansamantalang mag-freeze (huminto) ang mismong browser. Kailangan itong gamitin nang may pag-iingat.

   // Kung maaaring ma-resolve ang hiniling na hostname mula sa DNS server,
// hihilingin ito sa pamamagitan ng proxy1.example.com na proxy.

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

dnsDomainLevels​

Sinusuri ang hostname at ibinabalik kung ilang . (dot) ang umiiral sa nasabing string. Halimbawa, maaari itong gamitin kapag nagtatakda ng internal network web server bilang exception.

   // Kung naglalaman ang hostname ng kahit isang . (dot), kokonekta sa pamamagitan ng proxy1.example.com
// na proxy, at kung hindi naman ay direktang kokonekta.

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

weekdayRange​

Maaaring gamitin kapag gumagawa ng rule batay sa oras; halimbawa, kapag nais mong magbalik lamang ng proxy setting sa mga partikular na araw.

   // Gumamit ng proxy1.example.com na proxy mula Lunes hanggang Biyernes,
// at kung hindi naman ay direktang kumonekta sa internet.

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

dateRange​

Maaaring gamitin kapag gumagawa ng rule batay sa oras; halimbawa, kapag nais mong mag-apply lamang ng proxy sa mga partikular na buwan.


// Magtakdang gumamit ng proxy1.example.com na proxy mula Enero hanggang Marso,
// at kung hindi naman ay direktang kumonekta.

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

timeRange​

Maaaring gamitin kapag nais mong gumamit lamang ng proxy sa partikular na oras.

   // Gumamit lamang ng proxy1.example.com mula 8:00 ng umaga hanggang 6:00 ng gabi,
// at kung hindi naman ay direktang kumonekta.

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

alert​

Ang function na ito ay wala noong unang tinukoy ang PAC format, ngunit isa itong function na tinukoy sa mga browser na Internet Explorer at Firefox para sa pag-troubleshoot.

   // I-output ang resulta ng DNS resolving sa error console window ng browser.

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