通常、ブラウザのプロキシは全URLに対して一律にしか設定することができませんが、プロキシ設定ファイルを用いることで、URLやサーバに応じてプロキシを使ったり使わなかったりできます。
まずは、ブラウザにプロキシ設定ファイルを設定する方法です(←なんか変な言い方だ・・・)。以下、
C:\proxy.pac
がプロキシ設定ファイルだとします。大規模なLAN内でプロキシ使用が必須となっている環境など、既にプロキシ設定がしてあったり、「設定を自動的に検出する」に初めからチェックが入ってたりする環境では、変更することはオススメしません。どうしても、って場合の対処法は最後に書いておきます。
メニューの [ツール] → [インターネットオプション] から、[接続] タブの [LANの設定] ボタンを押します。
開いたダイアログの、「自動構成スクリプトを使用する」にチェック。アドレスに
file://C:/proxy.pac
と入れて [OK] を押せば完了。
メニューの [ツール] → [オプション] から、[一般] タブの [接続設定] ボタンを押します。
開いたダイアログの、「自動プロキシ設定スクリプトURL」にチェック。下のテキストボックスに
file://C:/proxy.pac
と入れて [OK] を押せば完了。
求める設定に応じて、幾つか設定例を紹介します。初めて設定する人は、proxy.pacを新規作成してメモ帳などで開いてから設定しましょう。
以下、NicoCache_nlのポート番号が 8080、オミトロン(使っている場合)のポート番号を 2525 と仮定して説明します。
あらゆるニコニコへのアクセスを経由させます。メッセージサーバへの接続に失敗する場合が多いようなのでオススメできません。 オミトロンを使っている場合も、ニコニコ経由だけ処理している場合はこの設定でOKです。
function FindProxyForURL(url, host) {
if ((shExpMatch(host, "*nicovideo.jp*") ||
shExpMatch(host, "*smilevideo.jp*")) &&
url.substring(0, 5) == "http:") {
return "PROXY localhost:8080";
}
return "DIRECT";
}
メッセージサーバは直接接続させます。たぶんNicoCache_nlではこれがオススメ。上と下の違いは、オミトロンを使わないか、使うか。
// オミトロンなし
function FindProxyForURL(url, host) {
if (shExpMatch(host, "msg*.nicovideo.jp*"))
return "DIRECT";
if ((shExpMatch(host, "*nicovideo.jp*") ||
shExpMatch(host, "*smilevideo.jp*")) &&
url.substring(0, 5) == "http:") {
return "PROXY localhost:8080";
}
return "DIRECT";
}
// オミトロンあり
function FindProxyForURL(url, host) {
if (shExpMatch(host, "msg*.nicovideo.jp*"))
return "PROXY localhost:2525";
if ((shExpMatch(host, "*nicovideo.jp*") ||
shExpMatch(host, "*smilevideo.jp*")) &&
url.substring(0, 5) == "http:") {
return "PROXY localhost:8080";
}
return "DIRECT";
}
動画のみ、NicoCache_nlを経由させる(参考:公式の人)。NicoCache_nlでこのプロキシ設定を利用した場合は、動画のキャッシュ機能のみしか利用できません。
// オミトロンなし
function FindProxyForURL(url, host) {
var SM_FLV_PATTERN = new RegExp("^http://[^/]+(?:smilevideo|nicovideo)\\.jp/smile\\?[msv]=([^.]+)\\.\\d+(low)?$");
if (SM_FLV_PATTERN.test(url)) {
return "PROXY localhost:8080";
}
return "DIRECT";
}
// オミトロンあり
function FindProxyForURL(url, host) {
var SM_FLV_PATTERN = new RegExp("^http://[^/]+(?:smilevideo|nicovideo)\\.jp/smile\\?[msv]=([^.]+)\\.\\d+(low)?$");
if (SM_FLV_PATTERN.test(url)) {
return "PROXY localhost:8080";
}
if ((shExpMatch(host, "*nicovideo.jp*") ||
shExpMatch(host, "*smilevideo.jp*")) &&
url.substring(0, 5) == "http:") {
return "PROXY localhost:2525";
}
return "DIRECT";
}
この場合は、それ用の追加設定が必要です。下の2行をreturn "DIRECT";の前の行あたりに追加。
if (host == "local.ptron")
return "PROXY localhost:2525";
このときは、NicoCacheのセカンドプロキシ、あるいはオミトロンのセカンドプロキシに、インターネットに出るためのプロキシサーバを設定する必要があります。
ひとまず、デフォルトのプロキシ設定ファイルを入手します。URLで指定している場合はダウンロードして保存しましょう。自動設定になっている場合は、なんとか頑張ってアドレスを見つけてダウンロードしましょう。
デフォルトのプロキシ設定ファイルが見つかれば、それをエディタで開いて編集します。function FindProxyForURLで始まる行を探し、その次の行( { のあと)へ、上の設定例の return "DIRECT"; の上の行までをコピペします。例えば、
// ダウンロードした設定ファイル
function FindProxyForURL(url, host) {
var SM_FLV_PATTERN = new RegExp("^http://[^/]+(?:smilevideo|nicovideo)\\.jp/smile\\?[msv]=([^.]+)\\.\\d+(low)?$");
if (SM_FLV_PATTERN.test(url)) {
return "PROXY localhost:8080";
}
// これ以降は初めから有る設定
...
...
}
のようになります。あとは、プロキシ設定ファイルの設定をみて、自分のプロキシ設定ファイルのパスを指定しましょう。この方法だと、ネットワーク環境が変わるたびに、最初の設定を更新してあげる必要があります。
最後に、NicoCacheやオミトロンに設定するセカンドプロキシの設定を探します。通常は、一番最後に書かれている return 文の中身のプロキシでOKです(環境により変わるので何とも言えないけど)。そのプロキシのアドレスとポート名をNicoCache_nlの設定ファイルに書けば動くはずです。