自動構成されたプロキシを調べる

最近は企業内のネットワークでもプロキシサーバの自動構成を行っていることが多い。
ブラウザのプロキシの設定を変更しなくても、自動構成スクリプトに従ってネットワーク管理者の推奨するプロキシに接続してくれるので便利なのだけど、自分ではプロキシサーバのIPアドレスはわからない。


たとえばソフトウェア開発ツール「Eclipse」のアップデートに使用する「更新サーバ」に企業内ネットワークから接続する場合、多くの場合プロキシサーバの設定をしなければいけないが、Eclipseはプロキシの自動設定を行ってくれないので、自分でIPアドレスとポートを設定する必要がある。ところが、プロキシサーバのIPアドレスがわからないため更新サーバに接続できない場合がある。


そういうとき、自動構成スクリプトのURLを自分で設定した場合は、自動構成スクリプトの内容を見るとプロキシサーバを知ることができる。
たとえば自動構成スクリプト(PACファイル)のURLが「http://www.example.co.jp/proxy.pac」だった場合、ブラウザで直接PACファイルのURLを指定して参照すると、どのようにプロキシサーバが決まるのかがわかる。

function FindProxyForURL(url,host)
{ if (isInNet(host,"192.168.0.0","255.255.0.0")) return "DIRECT";
else return "PROXY 192.168.0.10:8080; DIRECT";
}

PACファイルはJavaScriptで記述されている。上記の場合ローカルアドレスの場合は直接参照し、それ以外の場合はプロキシサーバ(192.168.0.10:8080)を参照するように設定されている。


自動構成スクリプトを直接設定した場合でなくても、DNSを使ってWPAD(Web Proxy Auto-Discovery)が設定されている場合は、自動構成スクリプトの場所を類推することができる。
たとえばブラウザの動作しているクライアントPCのアドレスがpc.hoge.example.co.jpだった場合、自動更新スクリプトは下記のいずれかになっているはず。

DHCPを使ってWPADを構成した場合、どうしたら自動構成スクリプトの内容やプロキシを知ることができるかはよくわからない。接続中のプロキシがどこか、調べる方法があってもよさそうなものだけど...