DotNetTor无法发出请求

时间:2019-11-28 13:48:27

标签: c# .net http httprequest tor

最近我想从洋葱站点获取.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

为什么发送请求失败?该如何解决?

1 个答案:

答案 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配置该端口。