最近我想从洋葱站点获取.json内容 (例如http://takedownmi4lfjhv.onion/root.json,这是一个现有链接)
所以我安装了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
为什么发送请求失败?该如何解决?
答案 0 :(得分:0)
上面的代码只是一个Socks Proxy处理程序,实际上并没有包含有关Tor的任何内容。
class APF_Improved(APF):
def __init__(self, start, goal, obstacles, k_att, k_rep, rr,
step_size, max_iters, goal_threshold, is_plot=False):
...
请参阅此代码链接。 只不过是通过SocksPortHandler 127.0.0.1:9050连接
但是此端口尚未完全配置为Tor。
因此,在此之前,您应该配置端口。
您可以从here下载Tor专家套件。这可以帮助您为Tor配置该端口。