Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过SOCKS代理将文件上载到FTP服务器?_C#_.net_Proxy_Ftp_Socks - Fatal编程技术网

C# 如何通过SOCKS代理将文件上载到FTP服务器?

C# 如何通过SOCKS代理将文件上载到FTP服务器?,c#,.net,proxy,ftp,socks,C#,.net,Proxy,Ftp,Socks,我已经使用以下代码成功地将文件上载到我的FTP服务器 using (WebClient client = new WebClient()) { client.Credentials = new NetworkCredential("USER", "PASS"); client.UploadFile("ftp://adress/" + filename, "STOR", file); } 但是,这不适用于防火墙保护的网络。 连接必须通过SOCKS代理才能绕过防火墙 如何做到这一点

我已经使用以下代码成功地将文件上载到我的FTP服务器

using (WebClient client = new WebClient())
{
    client.Credentials = new NetworkCredential("USER", "PASS");
    client.UploadFile("ftp://adress/" + filename, "STOR", file);
}
但是,这不适用于防火墙保护的网络。 连接必须通过SOCKS代理才能绕过防火墙

如何做到这一点?
如何使用第三方库(如或任何其他库)建立到SOCKS代理的连接并将文件上载到服务器?

.NET framework FTP客户端(
FtpWebRequest
WebClient
)无法使用SOCKS代理进行连接,仅:

FtpWebRequest类支持HTTP和ISA防火墙客户端代理

如果指定的代理是HTTP代理,则仅支持DownloadFile、ListDirectory和ListDirectoryDetails命令

因此,您需要使用第三方FTP库


例如,对于,您可以使用:

// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Ftp,
    HostName = "example.com",
    UserName = "user",
    Password = "mypassword",
};

// Configure proxy
sessionOptions.AddRawSettings("ProxyMethod", "2"); // SOCKS5 proxy
sessionOptions.AddRawSettings("ProxyHost", "proxy");

using (Session session = new Session())
{
    // Connect
    session.Open(sessionOptions);

    // Your code
}
有关的选项,请参见

更简单的是为您提供WinSCP GUI

请注意,WinSCP.NET程序集不是本机.NET库。它相当于控制台应用程序上的一个薄薄的.NET包装器


(我是WinSCP的作者)

我已经使用您的库上传了一个文件,但我没有使用代理。我意识到没有多少好的袜子代理是免费的。可以使用tor网络吗?不,不支持tor。不管怎样,这是一个不同的问题。+1用于支持多种语言的连接代码生成器(原以为我必须翻译C#,但我没有)