プロバイダ各社の proxy autoconfig を比較してみる

このエントリーをはてなブックマークに追加
1
プロバイダ板でやるべきかも知れない内容ですが、
IE や NC 等の Proxy Auto-Config File を比較してみるスレです。

参考URL

Navigator Proxy Auto-Config File Format
http://wp.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html
2:02/11/15 14:57 ID:???
漏れが加入したプロバイダのやつを晒します。

J-COM 東東京
//-Pacfile version 1.1
function FindProxyForURL(url, host)
{
var i;
var str;
if (
shExpMatch(url, "https://*") ||
shExpMatch(url, "news://*") ||
shExpMatch(url, "snews://*") ||
shExpMatch(url, "ftp://*@*") ||
shExpMatch(url, "http://ads*.home.net/*") ||
shExpMatch(url, "http://localhost/*") ||
shExpMatch(url, "http://localhost:*/*") ||
shExpMatch(url, "http://www:4000/*") ||
shExpMatch(url, "http://www.home.com:4000/*") ||
shExpMatch(url, "http://www.home.net:4000/*") ||
shExpMatch(url, "http://www.*.home.com:4000/*") ||
shExpMatch(url, "http://www.*.home.net:4000/*") ||
shExpMatch(url, "http://*.excite.ca/whereami*") ||
shExpMatch(url, "http://*.excite.com/whereami*") ||
shExpMatch(url, "http://*.heat.net/cgi-bin/*") ||
shExpMatch(url, "http://*.heat.net/*/cgi-bin/*") ||
0
) {
return("DIRECT");
}
(つづく)
3:02/11/15 15:01 ID:???
J-COM 東東京…間違えました、J-COM 東関東つづき
var num = (1 + (url.length % 2));
str = ("PROXY proxy" + num + ".kasiw1.kn.home.ne.jp" + ":8080; ");
for (i = 1; i <= 2; i++) {
if (i != num) {
str += ("PROXY proxy" + i + ".kasiw1.kn.home.ne.jp" + ":8080; ");
}
}
str += "DIRECT";
return(str);
}
4:02/11/15 15:02 ID:???
昨年時点のものなので、現在はより洗練されたものになってるかも知れません。>J-COM
5:02/11/15 15:25 ID:???
>>2-3 からわかること

・URL 長により、簡易な負荷分散が計られてる。
・proxy がサポートしてない protocol(https, news, snews)や、
 匿名以外の ftp や、
 自グループのものと思われる鯖等には proxy を経由させてない。
 但し、URL の case の違いは考慮してない。
・前半の shExpMatch() の羅列の最後に "|| 0" が在る(人間のケアレスミスを
 防ぐ為なのか、ファイルを機械生成した事に因るものなのかは不明)。
6bloom:02/11/15 15:41 ID:+U7Qk/VI
7:02/11/15 19:12 ID:???
追加

・いわゆるおうちルータの使用が想定されてない。
・proxy の port 番号を文字列連結で追加するのは変(機械生成かも)。
・DNS が引けないホストも proxy に投げてしまう為、キャッシュサーバの
 振舞いによっては、ブラウザの URL 推測に支障をきたすおそれあり。
8:02/11/15 19:34 ID:???
追加

・mp3 や mpeg 等のキャッシュにヒットしずらそうなもの(素人の想像ですけど)を
 特に除外してない。
9:02/11/15 19:39 ID:???
次… J-COM と比べるとあんまりな例なので、プロバイダ名が分かる部分は
伏せます。
function FindProxyForURL(url, host)
{
if (isPlainHostName(host) ||
dnsDomainIs(host, ".xxx.ne.jp") || dnsDomainIs(host, "ftp.yyy.jp"))
return "DIRECT";
else
return "PROXY proxy.xxx.ne.jp:8080; DIRECT";
}
10:02/11/15 19:50 ID:???
>>9 から分かる事

・proxy 鯖の負荷分散を(多分)ぐるぐる DNS に頼っている(1台しかないかも
 知れないけど)。
・いわゆるおうちルータの使用を考慮してない(private address 空間を
 除外してない)。
・localhost も除外してない(但し J-COM のやつも 127.0.0.1 等と指定すると
 proxy に逝ってしまう)。
・別の事業者の匿名 ftp 鯖(ftp.yyy.jp)を特別扱いしてるのは、どういう事情か?
11sage:02/11/15 20:41 ID:???
>>1
>プロバイダ板でやるべきかも知れない内容ですが、

わかっているならプロバイダ板へどうぞ。
あくまで実際のISPの例示を出しただけで
「Proxyのautoconfiguration」がネタならこの板でも良いと思われ。
まぁ、あるいはSquidとかを念頭に入れてUnix板にHTTPキャッシュスレあたりとか。
13:02/11/16 01:19 ID:???
>>2-3 で挙げた例なんですけど、shExpMatch() を多用するよりも、
url.substring() が使えるとこは使った方がCPU負荷が軽そうな気がするの
ですけど、気のせいでしょうか?

>>11
そうなんですけど、技術的に興味深い、或はスマートなものを追求したり
するのなら通技板かなぁ…と。
14:02/11/16 14:08 ID:???
>>12
proxy 鯖に投資するよりも、線に投資する方が費用対効果が大きい為…か否かは
不明ですけど、大手の nifty, so-net, biglobe では、proxy 鯖を用意してない
みたいですね。
15:02/11/16 15:12 ID:???
J-COM と比べると、おおと思わせる様な例が見当たらないです。
次の例もプロバイダが分かる部分は伏せてます。
function FindProxyForURL(url, host)
{
if (isInNet(host,"ccc.ccc.ccc.0","255.255.255.0") ||
isInNet(host,"10.0.0.0","255.0.0.0") ||
isInNet(host,"172.16.0.0","255.240.0.0") ||
isInNet(host,"192.168.0.0","255.255.0.0"))
return "DIRECT";
else
return "PROXY proxy.xxx.ne.jp:8080; DIRECT";
}

最初の isInNet(host, ...)は、
自ネットは proxy を通さない為なのですが、DNS を引く作業が伴うので、
isPlainHostName(host) || dnsDomainIs(host, ".xxx.ne.jp")
に置換えた方がいいと思いました。
private address を proxy 無しにしてるのは○(でも 127 が抜けてる)。
16:02/11/16 15:23 ID:???
補足
あと、いわゆるおうちルータは class C の private address で使ってる人が
多いと思うので(漏れの妄想かも)、isInNet(host,"192...") を
10 とか 172.16 とかより前に移動すると良かったりするのではないかと思う。
17:02/11/16 15:56 ID:???
ttp://www.space.net/proxy.pac

もう少しマシな方法はないのか?
18 :02/11/23 03:22 ID:???
>>14
マジレスすると、でかいISPは今時どこもLBでリダイレクトしてるだろ
サポート、運用のコストが大幅減だから

こんなの使ってるのは、
LBを買う金は無い、でもWebのトラフィックは減らしたい、でもユーザに設定させたくないっていうところだけだろ

どう考えてもプロバイダ板の内容
19:02/11/23 21:56 ID:???
>>18
LBスレでは駄目なんですね。

…自分用の autoconfig を書いてて気がついたのですけど、
shExpMatch(url, "*.(mp3|ra)") とか書いても、IE5.5 は意図した通りに
解釈してくれないんですね(NC4.78 では動く)。
どちらの実装が正解なんでしょうか?
20nanashisaso:02/12/09 13:43 ID:???
wget --proxy=off http://cache/member.pac
21あぼーん:あぼーん
あぼーん
22anonymous@ 61-21-5-146.home.ne.jp:02/12/14 13:19 ID:T8ZnKAnT
通信技術版でやるのはどうかと思うが、良スレと思った。
わしも何かupしたいが、JCOMなので既出・・・
2322:02/12/14 13:21 ID:???
>>22 リモホ出てやんの(;´д`)
24:02/12/15 15:15 ID:???
この板を見てる方はみんな知ってるとおもうけど、

Super Proxy Script
ttp://naragw.sharp.co.jp/sps/indexj.html

ディレクトリ部分だけハッシュ対象にするアプローチは、JCOM のやつにも
応用出来ると思う。
最後の '/' を捜すのに lastIndexOf method は使ってはいけないのだろうか?

>>22
ありがとー
25山崎渉:03/01/15 22:29 ID:???
(^^)
>>1
完璧に、板というよりは住人を選ぶのを間違えましたね。。。
27山崎渉:03/04/17 12:21 ID:???
(^^)
28 :03/04/19 07:22 ID:???
これの目的は何ですか?
29あぼーん:あぼーん
あぼーん
30あぼーん:あぼーん
あぼーん
31あぼーん:あぼーん
あぼーん
32あぼーん:あぼーん
あぼーん
33ぼるじょあ ◆yBEncckFOU :03/08/02 05:08 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
34あぼーん:あぼーん
あぼーん
35anonymous@ YahooBB219029096177.bbtec.net:04/08/29 20:39 ID:HO2oVGy8
てす
36nanasi:04/09/04 17:40 ID:???
>>36
リモホ晒しageしてまでテストしたかったのか
37anonymous@ 93.net220148248.t-com.ne.jp:2005/06/01(水) 19:44:09 ID:???
テスチョ
38anonymous@ 93.net220148248.t-com.ne.jp:2005/06/01(水) 19:45:03 ID:???
あぁわかっててもやるとやっちまった感がたまらねぇわ・・・・・・・
といいつつ影からスレを応援する
PC|・)
39heyhey:2006/05/22(月) 14:53:16 ID:???
test
40 ◆JeYFCvvdow :2006/05/28(日) 19:56:07 ID:???
テスト
41hoge:2006/06/29(木) 10:48:05 ID:???
この板を見てる方はみんな知ってるとおもうけど、

Super Proxy Script
ttp://naragw.sharp.co.jp/sps/indexj.html

ディレクトリ部分だけハッシュ対象にするアプローチは、JCOM のやつにも
応用出来ると思う。
最後の '/' を捜すのに lastIndexOf method は使ってはいけないのだろうか?
42age:2007/07/01(日) 20:22:16 ID:???
1年ぶりにage
43age:2009/08/22(土) 17:59:43 ID:CFxYf174
2年ぶりにあげ
44age:2009/10/23(金) 22:07:02 ID:???
更にあげ
45India:2011/02/05(土) 04:51:47 ID:wINN3Msv
久しぶりにあげ
46t:2011/03/26(土) 21:14:02.15 ID:???
これって自動で適用されてるの?
47 ◆3s4qgidZGeN1 :2011/09/30(金) 07:16:15.52 ID:???
ここも古いなぁ
48anonymous
で?