プロキシの自動切り替えスクリプトを書こうとしたが失敗した

ノートPCを使うとき、大学ではプロキシを介してネットに接続して、家だと直接接続というのを毎度手動で切り替えてたのだけど、
どうやらFirefoxGnome向けにスクリプトを書けば自動で切り替えれるらしいということを聞いてやってみた。
# FirefoxでもGnomeでもたぶん書く内容は共通…なのかな…。よく調べてないけど。
結果は失敗したけど。



Firefoxのメニューから編集(Linuxの場合。Winならツールかな)→詳細→ネットワーク→接続設定の中に項目がある。
一番下の自動プロキシ設定スクリプト URLがそれ。
後述するスクリプトの置いてあるURLを記述する。~/lib/proxy.pacなら、file:///home/khiker/lib/proxy.pacのように書く。


スクリプトはproxy.pacなんかでググれば書き方がいっぱいでるけど、Javascriptみたいに?(いや、そのものか。)書く。
例えばこんな感じ。

function FindProxyForURL(url, host) {
  return "PROXY proxyurl.ac.jp:8080; DIRECT" ;
}

この場合、最初はプロキシを介してアクセスしようとして、もし接続できなかったらDIRECT、直接接続をするよという設定(のもよう)。
これじゃプロキシを介して接続できるかどうかをチェックしやがってくれるので、プロキシを介さないでアクセスする場合、遅くてやってられない。
isResolvableという関数もあるのだけど、ネットに聞きに行くのでプロキシを介さない場合名前解決できるかどうかのチェックが遅くて駄目ぽだった。
myIpAddress関数で得た自分のIPアドレスを元に、shExpMatch関数で正規表現を使って大体で切り分けられないかなとも考えたけど、
myIpAddress関数が仕様なのかよくわからないけど、127.0.1.1しか返しやがらないので却下と相成った。


スクリプトの作成には、ここらへんを参考にしてみた。

2chにアクセスするときはプロキシ使わないで、他はプロキシを使ってのような処理は簡単に書けそうなんだけどなあ…。
うん。よーわからん。


あーどうでもいいけど、すげーデバッグしづらかった。
alertを使ってもなーんもポップアップでんし。
けっこうやってて気付いたのだけど、alertを使って変数なりの値を表示させたい場合、エラーコンソールに出るみたい。alertの結果が。
これに気付かなきゃmyIpAddressが127.0.1.1しか返さんて分からんかったで。



そんなこんなで出来たら便利なんだろうけど、残念ということで。

更新時刻

  • 2008/10/22/23:50