Wininetでのプロキシとポート指定によるファイルのダウンロード

このQ&Aのポイント
  • Wininetを使用してWebサーバからファイルをダウンロードする方法についての質問です。
  • プロキシとポートを指定する場合、ダウンロードが正常に行われない問題が発生しました。
  • InternetConnect関数を使用してポートを指定しましたが、うまくいきません。解決方法を教えてください。
回答を見る
  • ベストアンサー

Wininetでのプロキシとポート指定によるファイルのダウンロード

Wininetの下記の関数の組み合わせで、Webサーバからファイルをダウンロードしています。 InternetOpen→InternetOpenUrl→InternetReadFile(VB6.0) プロキシなしでやっているときは、問題なかったのですが、プロキシとポートを 指定したところ、うまくダウンロードできなくなりました。 InternetOpenで、プロキシの設定は行ったのですが、ポートの指定ができずに 困っています。ポートは一般的な80,8080ではなく特殊な設定になっています。 InternetConnectでポートの指定ができるようですが、うまくいきません。 どなたかお教え下さい。宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

>InternetOpenで、プロキシの設定は行ったのですが、 具体的に書かないと答えようがないですが、↓の方法で駄目ですか?

参考URL:
http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page9.html
quitgoo
質問者

お礼

ありがとうございました。 プロキシサーバの後に、ポート番号を指定すればよっかたんですね。 助かりました。

関連するQ&A

  • WinINet関数について質問です。

    WinINet関数を使いVCプログラムしています。 HTMLをダウンロードしてきて、情報を解析しているのですが。 InternetOpen InternetOpenUrl ↓ InternetReadFile 手順で、HTMLの所得はできるのですが、 ユーザー認証がいるサイトの情報を取る方法がわかりません。 (例えば:mixi,facebookなど) WinINet関数を使用してサイトにログインしてから、 指定のURLのHTMLを取得する様な感じだと思っているのですが、やり方がわかりません。 参考になる、サイト等知っている方がいましたら、教えて頂けると嬉しいです。

  • 「Active X Inet」と「WinInet.dll」の違いについて

    最近「VB6」から「VB 2008 Express Edition」へプログラミング環境を 移行したものです。 VB6では「Active X コントロール:インターネットトランスファ(Inet)の OpenURLメソッド」を使用してHTTPファイルを取得していました。 環境の移行を機に「Windows Internet(WinInet.dll)の機能」を使用して、 VB6の「Inet.OpenURLメソッド」と同様の処理を行おうと考えました。 しかしいざ実行すると、「Inet.OpenURL」だと正常にファイルを取得できるのに、 「WinInet.dll」では異常終了してしまうケースがあります。 私の経験不足から、その原因を突き止めることができません。 よろしくお願いいたします。 ◎HTTPファイルを取得するまでの WinInet.dll で行っている処理[1] (1) InternetOpen ↓ (2) InternetConnect ↓ (3) HttpOpenRequest ↓ (4) HttpSendRequest ↓ (5) HttpQueryInfo ↓ (6) InternetReadFile ◎HTTPファイルを取得するまでの WinInet.dll で行っている処理[2] (1) InternetOpen ↓ (2) InternetOpenUrl ↓ (3) HttpQueryInfo ↓ (4) InternetReadFile ◎ 上記、処理[1]で正常にファイルが取得できるURL 上記、処理[1]では失敗するが処理[2]で正常にファイルが取得できるURL 上記、処理[1]でも処理[2]でも失敗するが、「Inet.OpenURL」で正常に ファイルが取得でいるURLの、3通りのURLが存在します。 この差はどこから生じるのでしょう。 処理[1]、処理[2]で失敗する場合は、 「InternetConnect」、「HttpSendRequest」または、「InternetOpenUrl」で 異常終了し、「エラーコード:2(ERROR_FILE_NOT_FOUND: The system cannot find the file specified.)」が返ってきます。 「ファイルが見つからない」というのは、「該当のURLが存在しない」と いう事なのかもしれませんが、「Inet.OpenURL」で、正常にファイルが 取得できるのは腑に落ちないです。 「Inet.OpenURL」自体も「WinInet.dll」の機能を使って実現している様な事を 聞きました。いったい、何が違うのでしょう。 何方か、私のこの疑問を解消して頂けないでしょうか? よろしくお願いいたします。

  • HTTPで返されるファイル名の取得について

    こんにちは。 現在、VBで、WEBからファイルをダウンロードするプログラムを作成しています。 ダウンロードしたいファイルのURLを指定し、wininetのInternetReadFileで読み込んでいるのですが、下記 http://www.hoge.com/index.php?id=1234 のように、phpやaspからファイル名を返されるようなURLの場合、どうやって返されるファイル名を取得するのでしょうか? (wininetのHttpQueryInfoでは、ファイル名は取得できないようなのですが...)

  • wininet.dllのInternetOpenの同期、非同期について

    wininet.dllのInternetOpenの同期、非同期について お世話になります。 VBAでFTPの転送をする際に、InternetOpenを使うのですが同期させたいと思います。 以下サイトなどでいろいろ調べたのですがdwFlagsの指定の仕方について質問です。 1.dwFlags に 0 が指定された場合は、同期すると考えて宜しいでしょうか? 2.dwFlags に、文字列で INTERNET_FLAG_ASYNC を指定すると非同期となるということでよいでしょうか? 3.複数を組合せの時はどのように記述しますか? 以上、宜しくお願い致します。 <参考サイト> http://www.red.oit-net.jp/tatsuya/vb/WinInet.htm#InternetOpen ●参考サイトより抜粋 Public Declare Function InternetOpen Lib "Wininet.DLL" Alias "InternetOpenA" _ (ByVal lpszAgent As String, ByVal dwAccessType As Long, ByVal lpszProxyName As String, _ ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long dwFlags : オプション。以下のパラメータの組み合わせを指定します。 INTERNET_FLAG_ASYNC サーバーから取得する(非同期)。 INTERNET_FLAG_FROM_CACHE キャッシュから取得する。 INTERNET_FLAG_OFFLINE INTERNET_FLAG_FROM_CACHEと同じ。

  • Socksプロキシ

    プロキシサーバのテストをすることになって、Socksのプロキシサーバを作り、外部のクライアントから、内部LANのWEBサーバにアクセスするようにしました。 プロキシサーバをゲートウェイサーバに指定するとクライアントからのWEBサーバへのpingもちゃんとリプライがありました。 そして、クライアントでIEからURLを指定して、内部LANのWEBサーバにアクセスにいくと・・ IEの[インターネットオプション]の[LANの設定]の[プロキシサーバ]のところの[詳細設定]で、[サーバ]の項のところのSocksも含めた全部に、そのプロキシサーバのアドレスとポートを指定すると、WEBサーバへのアクセスがずーっと待ったままになってタイムアウトしてしまいました。 でも、[プロキシサーバ]の[詳細設定]の[サーバ]の項でSocksだけに、そのプロキシサーバのアドレスとポートを指定すると、WEBサーバにスムーズにアクセスできました。 これはなぜなんでしょう?? やっぱり、IEでhttpでURLを指定しているから、この[サーバ]の項の一番上にあるhttpのプロキシサーバからトライするんでしょうか。でもって、実際のプロキシサーバはSocksだったからリトライを繰り返して、ずーっと待ったままになってたんでしょうか。 実は、Socksが何かもほとんど知らないまま、テストをすることになり、あちこち調べて試行錯誤してやっております。こんな無知な私ですが、ご存じの方がいらしゃいましたら教えてください。よろしくお願いします。

  • WinInetのInternetOpenUrl関数が正常に動作しない。

    ネットワーク上のHTMLソースを取得しようとしています。InternetOpenUrl関数が動作せず、常にNULLが返ってきます。 環境は、WindowsXP、WindowsCE Platform Builder です。 void Get_HTML(){ HINTERNET hInternet; HINTERNET hFile; char Buff[1000]; DWORD ReadSize; BOOL bResult; //WinInetの初期化 char *agent ="WININET Sample Program"; hInternet = InternetOpen( (LPCWSTR)agent, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 ); if( hInternet == NULL ){ printf("InternetOpen Error \n"); } //ネット接続チェック if( InternetAttemptConnect(0) != ERROR_SUCCESS { printf("インターネットに接続できません。\n"); } else{ printf("インターネットに接続できる\n"); } //URLオープン char open_url="http://www.sample.com/sam1.html"; hFile = InternetOpenUrl( hInternet, (LPCWSTR)open_url, NULL, 0, INTERNET_FLAG_RELOAD, 0 ); printf("%s",(LPCWSTR)open_url); if( hFile == NULL ){ printf(" InternetOpenUrl ERROR \n"); } } InternetOpenUrl関数の戻り値がNULLになりReadを することが出来ません。 解決方法よろしくお願い致します。

  • プロキシサーバのポート番号について

    LAN内のPC1からプロキシサーバを経由して外部のPC2にアクセスする場合について疑問があります。 PC1とプロキシサーバ間の通信で使用するポート番号は、あらかじめ決めておけば良いのですが、プロキシサーバとPC2間の通信で使用するポート番号はどのように決まるのでしょうか? 1.PC1がプロキシサーバにアクセスした時のポート番号を使用する 2.PC1がプロキシサーバに使用するポート番号を通知している 3.プロキシサーバにあらかじめ設定しておいたポート番号を使用している 4.その他 申し訳ありませんが、ご存知の方、教えて頂けないでしょうか? お願い致します。

  • Net Transportのプロキシ設定

    Net Transportのプロキシ設定について 教えて下さい。 プロキシ設定でタイトル、サーバー、ポート、 と設定がありますが、タイトルには何を入れる のでしょうか? サーバーにはプロキシサーバーのIPアドレス、 ポートにはポート番号を入れてあります。 タイトルにテキトウな文字を入れても、正常に はダウンロードできませんでした。 宜しくお願いします。

  • GetASFStreamというソフトについて詳しい方。プロキシ、ポートとは何なんでしょうか?

    プロキシを設定してくださいとメッセージがでましたが、プロキシとは何でしょうか?またポート?も意味がわかりません。教えていただけますか?よろしくお願いします。それを設定しないとダウンロードできないようです。あと簡単に使い方を教えていただけたら幸いです。

  • プロキシ設定 アドレスとポート番号について

    教えてください。 初心者で、WindowsXP、IE6.0を使用中です。インターネット接続はモデム回線です。 AdobeReaderをダウンロードしたいのですが、「プロキシの設定、次の情報を入力して下さい」アドレスとポートの入力画面が出てくるのですが、何を入力したらいいのか分かりません。 ちなみに、「ツール」→「インターネットオプション」→「接続」→「LAN設定」のプロキシサーバーを使用するのチェックははずしています。 プロキシ設定を入力しないとダウンロードが先に進めません。 何をどうすればいいのでしょうか?またこの場合のアドレスとは、サーバーIPアドレスですか?クライアントIPアドレスですか? また、この場合はどこかを確認したら分かるのでしょうか? すみません、設定方法を教えてください。

専門家に質問してみよう