2012-02-19 5 views
3

FTP 프록시 (내 측면)를 통해 FTP를 사용하여 파일을 다운로드하려고합니다.FTP를 통한 FTP 프록시

On Commandline: 
ftp -i -s:get.ini CORPORATE_PROXY.com 
-----------get.ini------------ 
[email protected]_FTP.com abc/user_name 
CORPORATE_PROXY_PASSWORD 
user_name_password 
cd pub/linux/knoppix 
get packages.txt 
bye 
-----------get.ini------------ 

abc/user_name 내 기업 프록시를 통해 FTP 수있는 권한이 부여 된 내 사용자 이름입니다 이것은 내가 C#으로 구현하기 위해 노력하고 스크립트입니다.

위의 스크립트를 C#에서 구현하고 싶지만 인터넷에서 여러 가지 유형의 코드를 재생 한 후에는 그렇게 할 수 없습니다. 내가 anythere을 찾을 수없는 -

FtpWebRequest request = FtpWebRequest.Create(new Uri(@"ftp://" + CORPORATE_PROXY.com + @"/" + Path.GetFileName(fileToUpload))) as FtpWebRequest; 
request.UseBinary = true; 
request.KeepAlive = false; 
request.Method = WebRequestMethods.Ftp.UploadFile; 
if (!string.IsNullOrEmpty(CORPORATE_PROXY_USER) && !string.IsNullOrEmpty(CORPORATE_PROXY_PASSWORD)) 
    request.Credentials = new NetworkCredential(CORPORATE_PROXY_USER, CORPORATE_PROXY_PASSWORD); 

//Get physical file 
FileInfo fi = new FileInfo(fileToUpload); 
Byte[] contents = new Byte[fi.Length]; 

//Read file 
FileStream fs = fi.OpenRead(); 
fs.Read(contents, 0, Convert.ToInt32(fi.Length)); 
fs.Close(); 

request.Proxy = new WebProxy("CLIENT_FTP.com"); 
request.Proxy.Credentials = new NetworkCredential(abc/user_name, user_name_password); 

//Write file contents to FTP server 
Stream rs = request.GetRequestStream(); 
rs.Write(contents, 0, Convert.ToInt32(fi.Length)); 
rs.Close(); 

FtpWebResponse response = request.GetResponse() as FtpWebResponse; 
string statusDescription = response.StatusDescription; 
response.Close(); 
return statusDescription; 

가장 큰 문제는 내가 FTPProxy를 사용해야 의심하면서 내가 WebProxy가 사용하고 프록시를위한 것입니다? 어떤 방향으로 향해야하는지, 아니면 WebProxy가 괜찮습니까?

+0

FTP 프록시를 지원하는 사용자 지정 FTP 클라이언트 구성 요소가 친구가됩니다. –

답변

0

이전에는 FTP 프록시를 통과하기 위해 Indy Project을 사용했습니다.

0

FtpWebRequest 대신 WebRequest을 코드 예제에서 사용해보십시오.

이렇게하면 프록시에서 대상 서버로의 연결이 FTP 인 반면 클라이언트에서 프록시로의 연결은 HTTP가 될 수 있습니다. 프록시는 프로토콜 변환을 처리 할 것이고이 기술은 FTP over HTTP라고합니다.

클라이언트 대 프록시 및 프록시 대 서버 연결이 FTP 인 네이티브 FTP 프록시를 사용할 수도 있습니다. 프록시가이를 지원하는지 확인하십시오.

프록시는 고유 한 FTP 프록시 연결을 제공하기 위해 별도의 프록시 포트를 제공합니다.