Ruka hadi kwenye maudhui makuu

Sintaksia ya PAC (Proxy auto-config)

Taarifa

Ukipata kosa katika hati au una pendekezo, acha ujumbe katika jukwaa la Mudfish (https://forums.mudfish.net). Mifano na maelezo hapa yameandaliwa kwa kutafsiri au kurejelea maudhui ya tovuti hizi:

Kiendelezi cha Mudfish kinaauni umbizo la faili la PAC (Proxy auto-config).

Kazi za PAC​

Vivinjari vinavyoauni PAC kwa kawaida huauni kazi zilizoainishwa katika umbizo la kawaida la Netscape.

Kazi hizi hufanya kazi katika sandbox yenye vizuizi vikali. Kwa mfano, kuchunguza taarifa za User Agent hakuruhusiwi kabisa.

Zifuatazo ni kazi zinazoruhusiwa katika sandbox.

dnsDomainIs​

Hukagua jina la host na kurudisha true likilingana. Hutumiwa kwa kawaida kukagua host mahususi za kutenga.

   // Jina la host likilingana na google.com au anwani zake ndogo
// (kwa mfano maps.google.com, www.google.com),
// kivinjari kiunganishe moja kwa moja bila proksi.

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

shExpMatch​

Hulinganisha jina la host au URL na usemi wa shell na kurudisha true zikilingana.

   // Maombi yote (host zote zinazoishia .local)
// yaunganishwe moja kwa moja bila proksi.

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

// Maombi ya vpn.domain.com au folda na faili zote chini ya
// http://abcdomain.com/folder/
// yaunganishwe moja kwa moja bila proksi.

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

isInNet​

Hukagua IP ya host na kurudisha true ikiwa katika subnet iliyowekwa. Jina la host likitolewa kama hoja, hubadilishwa kuwa IP kupitia utatuzi wa DNS.

   // IP ya host iliyoombwa (baada ya kutatua DNS) ikiwa katika
// safu ya IP iliyotolewa, unganisha moja kwa moja.

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

myIpAddress​

Hurudisha IP ya kompyuta yako ya sasa.

   // Kompyuta yangu ikiwa katika safu fulani ya IP, tuma ombi kupitia
// proksi 10.10.5.1 kwenye port 8080.

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

dnsResolve​

Hubadilisha jina la host kuwa IP kupitia utatuzi wa DNS.

   // IP ya host iliyoombwa ikiwa katika safu iliyowekwa,
// unganisha moja kwa moja.

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​

Hurudisha true ikiwa jina la host halina . (nukta). Kwa mfano http://intranet; kwa kawaida hutumika kufikia anwani za wavuti za ndani.

   // Mtumiaji akiomba jina rahisi la host (kama http://intranet/ au
// http://webserver-name01/), unganisha moja kwa moja.

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

localHostOrDomainIs​

Hukagua jina la host na kurudisha true sehemu ya host ikilingana.

   // Host iliyoombwa ikiwa "www" au "www.google.com", unganisha
// moja kwa moja.

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

isResolvable​

Hujaribu kubadilisha jina la host kuwa IP na kurudisha true ikifanikiwa.

Kikoa kisipotatuliwa vizuri, kivinjari kinaweza kuganda kwa muda. Tumia kazi hii kwa tahadhari.

   // Jina la host likitatuliwa na seva ya DNS,
// tuma ombi kupitia proksi proxy1.example.com.

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

dnsDomainLevels​

Hukagua jina la host na kurudisha idadi ya . (nukta) zilizomo. Inaweza kutumika, kwa mfano, kutenga seva ya wavuti ya ndani.

   // Host ikiwa na angalau . (nukta) moja, unganisha kupitia
// proxy1.example.com; vinginevyo unganisha moja kwa moja.

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

weekdayRange​

Hutengeneza kanuni za wakati, kama kurudisha mipangilio ya proksi katika siku fulani pekee.

   // Tumia proksi proxy1.example.com Jumatatu hadi Ijumaa;
// siku nyingine unganisha moja kwa moja.

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

dateRange​

Hutengeneza kanuni za wakati, kama kutumia proksi katika miezi fulani pekee.


// Tumia proxy1.example.com Januari hadi Machi;
// wakati mwingine unganisha moja kwa moja.

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

timeRange​

Hutumia proksi katika saa mahususi pekee.

   // Tumia proxy1.example.com kuanzia saa 8 asubuhi hadi saa 18 jioni pekee;
// wakati mwingine unganisha moja kwa moja.

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

alert​

Kazi hii haikuwepo PAC ilipoainishwa mara ya kwanza, lakini Internet Explorer na Firefox zimeiainisha kwa utatuzi wa matatizo.

   // Onyesha matokeo ya utatuzi wa DNS kwenye dashibodi ya hitilafu ya kivinjari.

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