Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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}");
            }
        }
Ejemplo n.º 3
0
        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();
        }