私が理解しているように、FtpWebRequest.Proxy
プロパティは HTTP プロキシを示します。FTP プロキシ経由で外部サーバーに FTP 要求を発行する必要があります。
これまでのところ、これを機能させる唯一の方法は、Windows FTP コマンドを使用するスクリプトを作成し、その方法でダウンロードすることです。
を使用しFtpWebRequest
て、FTP プロキシ経由でファイルをダウンロードできますか?
私が理解しているように、FtpWebRequest.Proxy
プロパティは HTTP プロキシを示します。FTP プロキシ経由で外部サーバーに FTP 要求を発行する必要があります。
これまでのところ、これを機能させる唯一の方法は、Windows FTP コマンドを使用するスクリプトを作成し、その方法でダウンロードすることです。
を使用しFtpWebRequest
て、FTP プロキシ経由でファイルをダウンロードできますか?
以前に使用したコードは次のとおりです。これをチェックポイント ファイアウォールに対してのみテストしたので、FTP プロキシでは USER コマンドと PASS コマンドの形式が異なる可能性があることに注意してください。システム管理者は、正しい形式を知っています。
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(
new Uri("ftp://FTP PROXY HOST/actual/path/to/file/on/remote/ftp/server"));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential
("REMOTE FTP USER@FTP PROXY USER@REMOTE FTP HOST"
, "REMOTE FTP PASSWORD@FTP PROXY PASSWORD");
私はこれが期日をはるかに過ぎていることを知っていますが、はい、URLをに設定する古いトリックを使用することでFtpWebRequestをftpプロキシで動作させることができます
"ftp://your.proxy.server/theFileToDownload")"
次に、ネットワーククレデンシャルをに設定します
username="ftpUserName@ftp.realserver.com"
と
password="password".
古き良きWININETの時代にこれを行ったことを思い出しましたが、古いトリックが依然として最高のトリックである場合もあります。
もちろんYMMV。
予算に余裕がある場合、Dart は次のような優れたクラスを提供しています。
http://www.dart.com/ または具体的に は http://www.dart.com/ptftpnet.aspx
彼らは、リスト、リストの詳細、およびプロキシを介したダウンロードが可能であると主張しています。ただし、これを isa ファイアウォールで動作させることはできませんでした。そのため、app.config で既定のプロキシを無効にし、ForeFront/ISA クライアントのアプリケーション ルールを追加しました。これを行うために、次の内容のファイル c:\programdata\microsoft\firewall client 2004\application.ini を作成しました。
[applicationName] DisableEx=0 Disable=0 NameResolution=R
ここで、applicationName は、実行中の exe から .exe 拡張子を引いたものです。