自動構成スクリプトのプロキシ情報取得方法  

[戻る]
マサト 2010/10/07(木) 12:35:32
質問の書き込みを行いましたが、
なぜか表示がバグってしまいます。

マサト 2010/10/07(木) 12:37:42
申し訳ありませんが、もう一度質問を書かせていただきます。


現在、自動構成スクリプトからプロキシ情報を取得するプログラムを作成しています。
http://msdn.microsoft.com/en-us/library/Aa383910
こちらのサイトを元にサンプルを作成しましたが、DetectAutoProxyUrl()で必ずFALSEが
返ってきます。
GetLastError()でエラー値を見たところ、1168(要素が見つかりません。)を取得しまし
た。

自動構成スクリプト自体は、プロキシ経由でアクセスしているので正常に作動していま
す。
原因がわかる方がいましたら、教えていただけないでしょうか?

・ソース

char WPADLocation[1024] = "";
if (!DetectAutoProxyUrl(WPADLocation, sizeof (WPADLocation),
                        PROXY_AUTO_DETECT_TYPE_DHCP | 
PROXY_AUTO_DETECT_TYPE_DNS_A)) {
    
    DWORD dwRet = GetLastError();
    reportFuncErr("DetectAutoProxyUrl");
}


・自動構成スクリプトの中身

function FindProxyForURL(url,host)
{
    if (isInNet(host,"192.168.0.0","255.255.0.0")) return "DIRECT";
    else return "PROXY xxx.xxx.xxxx.xxx:3128; DIRECT";
}

PATIO 2010/10/07(木) 19:00:14
インターネットオプションの接続の設定にある自動構成スクリプトのアドレスを
持ってこようとしているのではないかと思うのですけれど、
実際に設定はされているのでしょうか?
書かれている内容からだけだとそれくらいしか想像できませんけれど。

マサト 2010/10/08(金) 15:10:31
返信ありがとうございます。

"自動構成スクリプトを使用する"のチェックボックスはONにしローカル環境に正しく上
記のpacファイルを置いています。

もしかすると自分の方の勘違と思い始めてきました。
DetectAutoProxyUrl()は"自動構成スクリプトを使用する"のアドレスを取得すると思っ
ていたのですが、
"設定を自動的に検出する"(WPAD)のチェックがONの場合に、サーバ上のPACファイルのア
ドレスを取得する関数なのでしょうか?

アドレス(自動構成スクリプトを使用する)を明記した場合は自分でレジストリ
の"AutoConfigURL"からパスを取得して、
InternetInitializeAutoProxyDll()、InternetGetProxyInfo()に投げてあげるのが正し
いように思えてきました。

この辺を詳しい方がいましたら教えていただきたいですm(_ _)m
一応、サンプルでInternetGetProxyInfo()を使用したところ、PAC内のプロキシサーバー
のアドレスを取得できました。
確認のため、再度質問させていただきます。

PATIO 2010/10/14(木) 13:16:34
自動構成スクリプトのアドレスがダイアログボックス上のエディットコントロールに表示
されている状態なのに取得できていないのであれば、私の想像は間違っていた事になると
思います。
エラー内容を見る限りではその情報その物が存在しないような内容でしたので
アドレスその物を登録指定ない場合は取得できないのではと思ったんですが。

古いスレッドには追加発言できません。