Re:FireWall超えのFTP接続に関して

[ リスト表示 ] [ ホームページ ]
In Reply to: Re:FireWall超えのFTP接続に関して
投稿者:Fantasy - 投稿日時:2004年07月15日 10時51分00秒
引用

管理人様。

早速のご回答ありがとうございます。

ご回答頂きました内容で試してみましたところ、やはりInternetConnect関数で正しく
ハンドルが取得できませんでした。

下記にソースの一部を添付いたします。


Public Const INTERNET_OPTION_PROXY_USERNAME = 43
Public Const INTERNET_OPTION_PROXY_PASSWORD = 44

lngInethnd = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PROXY, _
vbNullString, vbNullString, 0)
// この時点では、lngInethnd != 0 です。(正常終了)

iRet = InternetSetOption(lngInethnd, INTERNET_OPTION_PROXY_USERNAME, _
"ファイアーウォールユーザ名", Len("ファイアーウォールユーザ名"))
iRet = InternetSetOption(lngInethnd, INTERNET_OPTION_PROXY_PASSWORD, _
"ファイヤーウォールパスワード", Len("ファイヤーウォールパスワード"))
// 上記2関数とも戻りは0で恐らく成功しています。

lngFtphnd = InternetConnect(lngInethnd, "ファイアーウォールIPアドレス", INTERNET_DEFAULT_FTP_PORT, _
"外部FTPサーバユーザID@外部FTPサーバIPアドレス", "外部FTPサーバユーザ名", INTERNET_SERVICE_FTP, 0, 0)

// この時点で lngFtphndに0が返されます。
// この際、数パケットのデータ送受信が発生します。

** ご質問内容 **

InternetOpenの accesstype はINTERNET_OPEN_TYPE_PROXYで良いのでしょうか。
一応、全3つの定数は試してみましたが状態は変わりませんでした。
動きとしては、IE上のインターネット設定に左右されず、このプログラム上で指定したプロクシサーバに
アクセスできることが理想です。

InternetSetOptionにはINTERNET_OPTION_PROXYを指定して、INTERNET_PROXY_INFO構造体を使いファイアーウォール
情報を渡せるようになっていますが、こちらは特に値をセットしなくても良いのでしょうか。
INTERNET_PROXY_INFOの定義ですが、MSDNなどですとlpszProxyがLPCSTRになってますが、
ネット上のサンプルソースですとlong型になっています。
lpszと言うくらいなので文字列長を渡すような気も致しますが・・・。


質問ばかりですみません。
よろしくお願いいたします。

この記事に対するコメント

Re:FireWall超えのFTP接続に関して

[ リスト表示 ] [ ホームページ ]

GeoCities