3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

プロキシ自動構成スクリプトを使ってみた(特定ドメインのみプロキシ利用しない)

IEを始め、多くのブラウザはプロキシを自動設定するスクリプトに対応してます。

(ActiveDirectoryのグループポリシーを使えば、IEのプロキシは一元設定できますが、ADがない環境やIE以外のブラウザでプロキシを一元設定したいときにはこのスクリプトが有効かと思われます)

このスクリプトJavaScriptとなっているようで、FindProxyForURL 関数を実装することで動きを指定できるようです。

今回は特定のドメインアクセス時のみプロキシを使わない設定にするというものだったので、以下のように書きました。

function FindProxyForURL(url, host)

{

//条件にある文字列を含むURLアクセス時はプロキシ使わずダイレクトにアクセスする

if ( url.indexOf("hogedomain.com") >= 0 ||

url.indexOf("piyodomain.org") >= 0 ||

url.indexOf("192.168.") >= 0

)

{

return "DIRECT";

}

else {

//プロキシサーバのアドレスを指定

return "PROXY 192.168.0.2:8080";

}

}

このファイルを社内のWEBサーバや共有フォルダに配置します。(ローカル上でもOKです)

次に、IEの[インターネットオプション]→[接続]タブ→[LANの設定]で、[自動構成スクリプトを使用する]にチェックを入れ、アドレス欄に上記のファイルを保存したアドレスを入力します。

WEBサーバ上に配置した場合は、http://hoge/proxy.pac というようにURLで指定します。

Windows共有フォルダ上やローカルに置いた場合は file://c:\proxy.pac というように file プロトコルで記述します。

ただ、return "DIRECT" で指定したところにアクセスするとIEのダメな仕様ですべてイントラネットゾーンになってしまいます。

これを防ぐには、インターネットオプションの[セキュリティ]タブ→[ローカルイントラネット]→[サイト]で、[プロキシサーバを使用しないサイトをすべて含める]のチェックをオフにします。

このあたりの話は、@IT:検証 IEの自動Proxy設定とセキュリティ・ゾーンで解説されています。

参考:

@IT:WebブラウザのProxy設定を行うための4つの方法 - WPADのススメ -

プロキシの自動設定方法

自動設定ファイル(proxy.pac)の作成

TechNet:付録 B : 自動プロキシ構成スクリプトの例

Proxyサーバー続編