在 C# 中使用 Tor 下载文件

use*_*008 2 c# tor

我想使用 Tor 下载文件。我发现的大多数解决方案都需要安装并运行附加软件(例如 privoxy),但我不想让附加软件一直运行,即使我不使用我的程序。

所以我尝试了Tor.NET库,但我无法使用 Tor。这个例子不应该返回我的 IP 地址,但它确实:

ClientCreateParams createParams = new ClientCreateParams(@"D:\tor.exe", 9051);
Client client = Client.Create(createParams);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.icanhazip.com/");
request.Proxy = client.Proxy.WebProxy;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    var reader = new StreamReader(response.GetResponseStream());
    Console.WriteLine(reader.ReadToEnd());
}

Console.WriteLine("Press enter to exit...");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

已经有很多关于此的评论,但不幸的是,该库的作者不再活跃。

也许您知道我做错了什么(是否需要更多配置?)或者对使用 tor 下载文件的替代方法有想法。

小智 5

您遵循Tor 项目手册,命令行HTTPTunnelPort,您可以在此处找到:首先,您必须使用以下命令启动 HTTP 隧道

Tor.exe --HTTPTunnelPort 4711
Run Code Online (Sandbox Code Playgroud)

它为您提供了一个位于 127.0.0.1:4711 的 HTTP 隧道(另请参见此处)。现在您可以连接到此代理:

WebProxy oWebProxy = new WebProxy (IPAddress.Loopback.ToString (), 4711);
WebClient oWebClient = new WebClient ();
oWebClient.Proxy = oWebProxy;
oWebClient.DownloadFile ("http://myUri", "myFilename");
Run Code Online (Sandbox Code Playgroud)

使用Tor.exe 时请注意以下事项

  • 如果该端口已被使用Tor.exe将无法提供代理。它甚至不一定会通知您有关此故障的信息。
  • 确保没有人欺骗您的程序Tor.exe,以便 Tor 为您提供此代理。因此,Tor.exe应该位于文件系统中的安全位置。
  • 了解有关使用 Tor 的其他预防措施。

至少,您可能需要检查您的代理与本地 Internet 连接的 IP 地址是否不同。