pacparserPAC文件解析庫(kù)
pacparser 是一個(gè)用于解析代理自動(dòng)配置(PAC)文件的庫(kù)。代理自動(dòng)配置文件是當(dāng)今廣泛使用的代理配置方法。Web 瀏覽器可以使用 PAC 文件來(lái)確定要使用哪個(gè)代理服務(wù)器,或者是否直接訪(fǎng)問(wèn)給定的 URL。PAC 文件是用 JavaScript 編寫(xiě)的,可以"PROXY proxy1:port; DIRECT"根據(jù)URL,源IP地址,協(xié)議,一天中的時(shí)間等編程為返回不同的代理方法。
不用說(shuō),PAC 文件現(xiàn)在已成為代理配置管理的一種廣泛接受的方法,并且各地的公司都在公司環(huán)境中使用它們。幾乎所有流行的 Web 瀏覽器都支持 PAC 文件。pacparser 的想法是使此 PAC 文件解析功能易于添加到任何程序中(目前支持 C 和python)。它以共享的 C 庫(kù)和 python 模塊的形式出現(xiàn),可用于使任何 C 或 python 程序 PAC 腳本智能化。一些非常有用的目標(biāo)可能是流行的 Web 軟件,例如 wget,curl 和 python-urllib。
安裝
請(qǐng)參閱軟件包根目錄中的“安裝”。
如何使用它?
Pacparser作為共享庫(kù)(在類(lèi)似Unix的系統(tǒng)上為libpacparser.so,在Windows上為pacparser.dll)以及一個(gè) python 模塊。使用它很容易根據(jù)它編譯 C 程序或在 python 程序中導(dǎo)入 pacparser 模塊。
使用范例
Python:
>> > 進(jìn)口 pacparser
>> > pacparser。初始化()
>> > pacparser。parse_pac('的例子/ WPAD.DAT' )
>> > pacparser。find_proxy('http://www.google.com' ,'www.google.com' )
'直接'
>> > pacparser。setmyip(“192.168.1.134” )
>> > pacparser。find_proxy('http://www.google.com')
'PROXY proxy1.manugarg.com:3128; PROXY proxy2.manugarg.com:3128; 直接”
>> > pacparser。find_proxy('http://www2.manugarg.com' ,'www2.manugarg.com' )
'直接'
>> > pacparser。清理()
>> >
C:
#包括 < stdio.h中>
int pacparser_init();
int pacparser_parse_pac(char * pacfile);
char * pacparser_find_proxy(char * url,char * host);
無(wú)效 pacparser_cleanup();
int main(int argc,char * argv [])
{
字符 *代理;
pacparser_init();
pacparser_parse_pac(argv [ 1 ]);
proxy = pacparser_find_proxy(argv [ 2 ],argv [ 3 ]);
printf(“ %s \ n ”,代理);
pacparser_cleanup();
}
manugarg@hobbiton:~$ gcc -o pactest pactest.c -lpacparser
manugarg@hobbiton:~$ ./pactest wpad.dat http://www.google.com www.google.com
PROXY proxy1.manugarg.com:3128; PROXY proxy2.manugarg.com:3128; DIRECT
平臺(tái)
pacparser 經(jīng)過(guò)測(cè)試可在 Linux(Debian 支持的所有體系結(jié)構(gòu)),Mac OS X 和 Win32 系統(tǒng)上工作。
