PACファイルでプロキシを設定するためのツールはありますか?


8

プログラムによってpacファイルの処理方法が異なり、そのほとんどがpacファイルをサポートしていないことも知っています。だから私はプロキシを設定するツールが127.0.0.1:1234と言っているかどうか知りたいです。また、プログラムのプロキシを127.0.0.1:1234に設定すると、このツールはpacファイルを使用して、プロキシにリダイレクトするか直接接続するかを決定します。上記の機能を満たすツールはありますか?

回答:


3

JavaScriptをサポートするブラウザーは通常、PACファイルをサポートします。それ以外のものは通常は何もしません。特に、市販のプロキシソフトウェアがそうであることに気づいていません。ただし、JavaScriptプログラムではなく、ターゲットURLに基​​づいて異なる方法で実行する方法をサポートする多くのプロキシがあります。多くのプロキシへの透過的なローカルプロキシを参照してください。

PACファイルはJavaScriptプログラムであるため、PACファイルのサポートにはJavaScriptインタープリターが必要です。JavaScriptで書かれたプロキシはありますが、PACファイルをサポートするプロキシが見つかりません。PythonライブラリpacparserはPACサポートを実装しており(MozillaのJavaScriptエンジンの上に)、Python書かれた多くのプロキシありますが、驚くべきことに、pacparserを使用する実際のプロキシプログラムはないようです。


2

ええと...最終的にはpacの代わりに他のルールを使用し、Privoxyを試してみました。これが私がやったことです。

  1. Privoxyをインストールしてを聞いてください127.0.0.1:1234
  2. gfwlist.txtを取得して、Privoxyアクションファイルに変換します。
  3. アクションファイルでは、一部のURLはプロキシを使用して送信され、他のURLは直接接続されます。

1

私はあなたと同じ船に乗っていて、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を使用すると、スムーズに動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.