BLOGTIMES
::
Home > Proxyを自動設定する
2008/03/11
[ by hsur at 18:57]

Proxyを自動設定する

  

家、会社、大学、実家、出先といろいろな場所でPCを使うのですが、場所によってはProxyを指定しないといけない場合があります。普段は Think Vantage Access Connections が自動的に切り替えてくれるわけですが、ブラウザが起動したままだとうまく切り替わってくれないので困っていました。

それでFirefoxにはSwitchProxyをインストールして、メニューから選択するだけでProxyの切り替えができるようにしていたんですが、やはり面倒なのでこの作業が完全に自動化できないか調べてみたところ、プロキシ自動設定ファイルを使えばアクセス先のIPアドレスや、ホスト名、自分のIPアドレスなどを使って自由にProxyの設定ができることがわかりました。

設定手順

本来はウェブサーバに置くもののようですが、今回は自分のPCの設定が変わればよいだけなので、自分のMyDocumentに自動設定ファイルを置くことにします。

C:\Documents and Settings\(ユーザ名)\My Documents\proxy.pac

function FindProxyForURL(url,host) {
  var myipaddr = myIpAddress();
  var proxy    = 'DIRECT';

  if (isInNet(myipaddr, "172.21.33.0", "255.255.255.0")){
    // Univ
    proxy = findProxyUniv(url,host);
  }

  return proxy;
}

function findProxyUniv(url,host) {
        if (isPlainHostName(host) || isPrivate(host) || shExpMatch(host,"*.example.com") ){
                return "DIRECT";
        }
        return "PROXY proxy.example.com:10080;";
}

function isPrivate(host) {
        return shExpMatch(host, "172.16.*")
           || shExpMatch(host, "172.17.*")
           || shExpMatch(host, "172.18.*")
           || shExpMatch(host, "172.19.*")
           || shExpMatch(host, "172.2?.*")
           || shExpMatch(host, "172.30.*")
           || shExpMatch(host, "172.31.*")
           || shExpMatch(host, "10.*")
           || shExpMatch(host, "192.168.*")
           || shExpMatch(host, "127.0.0.*");
}

今回は自分のIPが大学のプライベートアドレス(172.21.33.0/24)の場合に大学のプロキシサーバ(proxy.example.com:10080)を経由するようなproxy.pacファイルを作成してみました。JavaScriptなので必要に応じて、条件判定部分を増やすともっと細かく制御できるようになります。

その後、Firefoxの自動プロキシ設定スクリプト欄に下記を入力*1

file:///C:/Documents%20and%20Settings/(ユーザ名)/My%20Documents/proxy.pac

FireFox Proxy 設定画面

最後に上記画面の再読み込みを押すと、設定が反映されます。これで何もいじらなくても自動的にProxyが設定されるようになりました。

参考

@IT:Windows TIPS -- Tips:WebブラウザのProxy設定を行うための4つの方法 - WPADのススメ -
プロキシ自動設定ファイルのTIP - Admintech.jp

  • *1: これは僕の例なので、必要に応じて書き換える必要があります。
このエントリは役に立ちましたか?
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/2463
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン

Web Services by Yahoo! JAPANPowered by NP_SpamBayesJP
★下記に2つの英単語をスペースで区切って入力してください
::
Home > Proxyを自動設定する