private async Task CanChangeCircuitAsync() { var requestUri = "https://api.ipify.org/"; IPAddress torIp; IPAddress changedIp; // 1. Get Tor IP var handler = new TorSocks5Handler(SharedFixture.TorSock5EndPoint); using (var httpClient = new HttpClient(handler)) { var content = await(await httpClient.GetAsync(requestUri)).Content.ReadAsStringAsync(); var gotIp = IPAddress.TryParse(content.Replace("\n", ""), out torIp); Assert.True(gotIp); } // 2. Change Tor IP var controlPortClient = new TorControlClient(SharedFixture.HostAddress, SharedFixture.ControlPort, SharedFixture.ControlPortPassword); await controlPortClient.ChangeCircuitAsync(); // 3. Get changed Tor IP var handler2 = new TorSocks5Handler(SharedFixture.TorSock5EndPoint); using (var httpClient = new HttpClient(handler2)) { var content = await(await httpClient.GetAsync(requestUri)).Content.ReadAsStringAsync(); var gotIp = IPAddress.TryParse(content.Replace("\n", ""), out changedIp); Assert.True(gotIp); } Assert.NotEqual(changedIp, torIp); }
private static async Task RequestWith3IpAsync() { var requestUri = "https://api.ipify.org/"; // 1. Get real IP using (var httpClient = new HttpClient()) { var message = await httpClient.GetAsync(requestUri); var content = await message.Content.ReadAsStringAsync(); Logger.LogInfo($"Your real IP: \t\t{content}"); } // 2. Get Tor IP using (var httpClient = new HttpClient(new TorSocks5Handler(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050)))) { var message = await httpClient.GetAsync(requestUri); var content = await message.Content.ReadAsStringAsync(); Logger.LogInfo($"Your Tor IP: \t\t{content}"); // 3. Change Tor IP var controlPortClient = new TorControlClient("127.0.0.1", controlPort: 9051, password: "******"); await controlPortClient.ChangeCircuitAsync(); // 4. Get changed Tor IP message = await httpClient.GetAsync(requestUri); content = await message.Content.ReadAsStringAsync(); Logger.LogInfo($"Your other Tor IP: \t{content}"); } }
private async Task CanChangeCircuitMultipleTimesAsync() { var requestUri = "https://api.ipify.org/"; // 1. Get Tor IP IPAddress currIp = await GetTorIpAsync(requestUri); var controlPortClient = new TorControlClient(SharedFixture.HostAddress, SharedFixture.ControlPort, SharedFixture.ControlPortPassword); for (int i = 0; i < 3; i++) { IPAddress prevIp = currIp; // Change Tor IP await controlPortClient.ChangeCircuitAsync(); // Get changed Tor IP currIp = await GetTorIpAsync(requestUri); Assert.NotEqual(prevIp, currIp); } }
public void RefreshIp() { var controlPortClient = new TorControlClient("127.0.0.1", controlPort: 9051, password: "******"); controlPortClient.ChangeCircuitAsync().Wait(); }