日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

pac (PAC(Proxy Auto Config) 是一个 Script;经由编写这个 Script,我们可以让系统判断在怎么样的情形下,要利用哪一台 Proxy 来进行联机。)...

發(fā)布時(shí)間:2025/1/21 windows 150 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pac (PAC(Proxy Auto Config) 是一个 Script;经由编写这个 Script,我们可以让系统判断在怎么样的情形下,要利用哪一台 Proxy 来进行联机。)... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
PAC自動(dòng)代理文件格式,教你如何寫PAC文件

PAC文件格式

PAC文件是純文本格式的,實(shí)際上就是JavaScript文件。Chrome/Chromium的擴(kuò)展Switchy!的"Auto Switch Mode"功能實(shí)際上也是創(chuàng)建和維護(hù)一個(gè)簡(jiǎn)單的PAC文件,但功能比較弱。

對(duì)于一般的應(yīng)用,即使你幾乎不懂JavaScript和編程,也可以通過(guò)本文的介紹實(shí)現(xiàn)基本的功能。

PAC文件FindProxyForURL函數(shù)?

PAC文件中必須包含一個(gè)函數(shù):FindProxyForURL(url, host)。

參數(shù)url是用戶輸入的url,參數(shù)host是url中的主機(jī)名。

比如url為http://www.truevue.org/javascript/pac-proxy-setting,那么host就是www.truevue.org

一個(gè)最簡(jiǎn)單的PAC文件內(nèi)容如下:

?

function FindProxyForURL(url, host) {return "DIRECT"; }

?

這個(gè)PAC文件實(shí)際上什么也沒(méi)做,對(duì)任何URL,都將"DIRECT"(直接連網(wǎng))。

PAC文件返回值類型

除了可以return "DIRECT"以外,還有兩種常用方式:

PROXY proxysample.com:8080

http代理的主機(jī)和端口,主機(jī)也可以用IP表示

SOCKS5 socks5sample.com:1080

socks5代理的主機(jī)和端口,主機(jī)也可以用IP表示

那么,我們可以猜測(cè)到,用pac指定一個(gè)http代理應(yīng)該這樣寫

?

function FindProxyForURL(url, host) {return "PROXY 192.168.1.1:3128"; }

?

甚至可以指定多個(gè)代理????

?

function FindProxyForURL(url, host) {return "DIRECT; PROXY 192.168.1.1:3128; SOCKS5 lilinux.net:1080"; }

?

這句語(yǔ)句的意思是:?

  • 對(duì)所有URL,都直接連接;?
  • 如果不能直接連接,那么就使用192.168.1.1:3128這個(gè)http代理連接;
  • 如果還是不能連接,則使用lilinux.net:1080這個(gè)socks5代理連接。
  • 使用不同連接的順序和語(yǔ)句中的順序一致,你可以根據(jù)自己的實(shí)際情況更改。

    也許你明確知道哪些網(wǎng)站不能直連,必須用PROXY或者SOCKS5連接,那么可以對(duì)站點(diǎn)分別指定代理配置?

    ?

    function FindProxyForURL(url, host) {if (shExpMatch(url,"*.google.com/*")) {return "PROXY 192.168.1.1:3128";}if (shExpMatch(url, "*.wikipedia.com:*/*")) {return "SOCKS5 lilinux.net:1080";}if (isInNet(host, "10.0.0.0", "255.0.0.0")){return "DIRECT";}return "DIRECT; PROXY 192.168.1.1:3128; SOCKS5 lilinux.net:1080"; }

    ?

    這個(gè)PAC文件中引入了兩個(gè)新的函數(shù),但從字面意思上,我們也可以猜出代碼的大概意思:

  • 當(dāng)url是*.google.com/* 時(shí),自動(dòng)使用PROXY代理;
  • 當(dāng)url是*.wikipedia.cm/*時(shí),自動(dòng)使用SOCKS5代理;
  • 當(dāng)host是10.0.0.0 /255.0.0.0的子網(wǎng)內(nèi)時(shí),自動(dòng)直連;
  • 如果都不匹配,則依次按DIRECT、PROXY、SOCKS5的次序嘗試。?
  • shExpMatch函數(shù)用來(lái)匹配url或者h(yuǎn)ost,匹配的方式和DOS的通配符相似。例如前面用到的"*.google.com/*"可以匹配任意包含".google.com/"的字符串。?

    Chrome/Chromium 的擴(kuò)展Switchy!創(chuàng)建的pac文件還自定義了一個(gè)函數(shù),可以用來(lái)匹配正則表達(dá)式,不過(guò)個(gè)人認(rèn)為在url匹配上通常不需要使用強(qiáng)大的正則表達(dá)式。?

    isInNet函數(shù)用來(lái)返回請(qǐng)求的host是否在指定的域內(nèi)。值得注意的是,isInNet的第二個(gè)參數(shù)必須是 IP,不能是主機(jī)名。因此需要把主機(jī)名轉(zhuǎn)換成IP。比如"isInNet(host, dnsResolve(www.google.com), "255.255.255.0")"講到這里,應(yīng)該可以解決你的問(wèn)題了吧。

    PAC文件可以使用的JavaScript函數(shù)

    當(dāng)然PAC也不止這么簡(jiǎn)單,它還提供了不少其它函數(shù),在本文就不詳細(xì)講述了。http://www.truevue.org/javascript/pac-functions?中列出了PAC代理文件中可以使用的JavaScript函數(shù)。

    你也許想把pac文件發(fā)布到Internet上,這樣其它用戶就只需要在瀏覽器中指定pac文件的url即可。你得配置你的服務(wù)器映射 .pac 文件后綴到MIME類型: application/x-ns-proxy-autoconfig 如果使用的是Netscape服務(wù)器,編輯 config 目錄下的 mime.types 文 件。如果是Apache, CERN or NCSA服務(wù)器,使用 AddType 指令。

    轉(zhuǎn)載于:https://www.cnblogs.com/tongbiao/p/6806547.html

    總結(jié)

    以上是生活随笔為你收集整理的pac (PAC(Proxy Auto Config) 是一个 Script;经由编写这个 Script,我们可以让系统判断在怎么样的情形下,要利用哪一台 Proxy 来进行联机。)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。