回答:
JavaScriptをサポートするブラウザーは通常、PACファイルをサポートします。それ以外のものは通常は何もしません。特に、市販のプロキシソフトウェアがそうであることに気づいていません。ただし、JavaScriptプログラムではなく、ターゲットURLに基づいて異なる方法で実行する方法をサポートする多くのプロキシがあります。多くのプロキシへの透過的なローカルプロキシを参照してください。
PACファイルはJavaScriptプログラムであるため、PACファイルのサポートにはJavaScriptインタープリターが必要です。JavaScriptで書かれたプロキシはありますが、PACファイルをサポートするプロキシが見つかりません。PythonライブラリpacparserはPACサポートを実装しており(MozillaのJavaScriptエンジンの上に)、Pythonで書かれた多くのプロキシがありますが、驚くべきことに、pacparserを使用する実際のプロキシプログラムはないようです。
ええと...最終的にはpacの代わりに他のルールを使用し、Privoxyを試してみました。これが私がやったことです。
127.0.0.1:1234
。私はあなたと同じ船に乗っていて、pacchains.confに入力する有効なプロキシのIPとポートを取得するためにpacファイルなどを解析する方法を理解しようとしました。
これまでのところ、私が見つけた最も簡単で迅速な方法は、lynx、grep、awk、およびsedを使用するスクリプトを記述することです。これは最もきれいなコードではありませんが、機能し、プロキシテーブルを1分以内に更新します。編集このスクリプトを合理化する方法を誰かに教えてもらえたら、すばらしいと思います。
#!/bin/bash
proxylst=proxy.lst
proxynew=proxy.new
lstdir=~/Documents/.proxyupdate
echo "fetching proxy list"
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' > $lstdir/$proxylst
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' >> $lstdir/$proxylst
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' >> $lstdir/$proxylst
echo "scan complete. updating /etc/proxychains.conf.."
sed 's/^/http /' $lstdir/$proxylst > $lstdir/$proxynew
grep -v 'http *.*.*.* 8080' /etc/proxychains.conf > $lstdir/proxyconf.new && cat $lstdir/$proxynew >> $lstdir/proxyconf.new
cp $lstdir/proxyconf.new /etc/proxychains.conf
echo
rm -rf $lstdir/proxyconf.new $lstdir/$proxylst $lstdir/$proxynew
echo "update complete."'
これをcronエントリとして設定し、テーブルを1時間ごとに更新してください。proxychainsとfirefoxは実際にはうまく連携しないため、自動構成ファイルとしてproxynovacomのpacを使用すると、スムーズに動作します。