DotNetTor 无法发出请求
DotNetTor Cannot Make Requests
最近我想从洋葱网站上获取 .json 内容
(例如 http://takedownmi4lfjhv.onion/root.json,这是一个现有的 link)
所以我安装了 C# 库 DotNetTor (Nuget package is here)
我复制并粘贴了 DotNetTor QuickStart Example Project 示例代码并将其 运行 与我的 C# 项目一起使用。
var requestUri = "http://icanhazip.com/";
// 1. Get real IP
using (var httpClient = new HttpClient())
{
var message = httpClient.GetAsync(requestUri).Result;
var content = message.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Your real IP: \t\t{content}");
}
// 2. Get TOR IP
using (var httpClient = new HttpClient(new SocksPortHandler("127.0.0.1", socksPort: 9050)))
{
var message = httpClient.GetAsync(requestUri).Result; // GOT ERROR HERE // GOT ERROR HERE
var content = message.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Your TOR IP: \t\t{content}");
// 3. Change TOR IP
var controlPortClient = new DotNetTor.ControlPort.Client("127.0.0.1", controlPort: 9051, password: "ILoveBitcoin21");
controlPortClient.ChangeCircuitAsync().Wait();
// 4. Get changed TOR IP
message = httpClient.GetAsync(requestUri).Result;
content = message.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Your other TOR IP: \t{content}");
}
然而,在我标记// GOT ERROR HERE
的那一行,它弹出了一个错误
System.AggregateException
Inner Exception 1:
TorException: Failed to send the request
Inner Exception 2:
SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:9050
为什么发送请求失败?如何解决?
上面的代码只是一个 Socks 代理处理程序,并不真正包含任何关于 Tor 的内容。
new SocksPortHandler("127.0.0.1", socksPort: 9050)
查看此 link 代码。这 只不过是通过 SocksPortHandler 127.0.0.1:9050
连接
但是这个端口还没有配置到 Tor。
所以在此之前,您应该配置端口。
您可以从 here 下载 Tor Expert Bundle。这可以帮助您为 Tor 配置该端口。
最近我想从洋葱网站上获取 .json 内容 (例如 http://takedownmi4lfjhv.onion/root.json,这是一个现有的 link)
所以我安装了 C# 库 DotNetTor (Nuget package is here)
我复制并粘贴了 DotNetTor QuickStart Example Project 示例代码并将其 运行 与我的 C# 项目一起使用。
var requestUri = "http://icanhazip.com/";
// 1. Get real IP
using (var httpClient = new HttpClient())
{
var message = httpClient.GetAsync(requestUri).Result;
var content = message.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Your real IP: \t\t{content}");
}
// 2. Get TOR IP
using (var httpClient = new HttpClient(new SocksPortHandler("127.0.0.1", socksPort: 9050)))
{
var message = httpClient.GetAsync(requestUri).Result; // GOT ERROR HERE // GOT ERROR HERE
var content = message.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Your TOR IP: \t\t{content}");
// 3. Change TOR IP
var controlPortClient = new DotNetTor.ControlPort.Client("127.0.0.1", controlPort: 9051, password: "ILoveBitcoin21");
controlPortClient.ChangeCircuitAsync().Wait();
// 4. Get changed TOR IP
message = httpClient.GetAsync(requestUri).Result;
content = message.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Your other TOR IP: \t{content}");
}
然而,在我标记// GOT ERROR HERE
的那一行,它弹出了一个错误
System.AggregateException
Inner Exception 1:
TorException: Failed to send the request
Inner Exception 2:
SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:9050
为什么发送请求失败?如何解决?
上面的代码只是一个 Socks 代理处理程序,并不真正包含任何关于 Tor 的内容。
new SocksPortHandler("127.0.0.1", socksPort: 9050)
查看此 link 代码。这 只不过是通过 SocksPortHandler 127.0.0.1:9050
连接但是这个端口还没有配置到 Tor。
所以在此之前,您应该配置端口。
您可以从 here 下载 Tor Expert Bundle。这可以帮助您为 Tor 配置该端口。