Пример #1
0
        private static void RequestWith3Ip()
        {
            var requestUri = "http://icanhazip.com/";

            // 1. Get real IP
            using (var httpClient = new HttpClient())
            {
                var content = httpClient.GetAsync(requestUri).Result.Content.ReadAsStringAsync().Result;
                Console.WriteLine($"Your real IP: \t\t{content}");
            }

            // 2. Get TOR IP
            using (var socksPortClient = new SocksPort.Client())
            {
                var handler = socksPortClient.GetHandlerFromDomain("icanhazip.com");
                using (var httpClient = new HttpClient(handler))
                {
                    var content = httpClient.GetAsync(requestUri).Result.Content.ReadAsStringAsync().Result;
                    Console.WriteLine($"Your TOR IP: \t\t{ content}");
                }

                // 3. Change TOR IP
                var controlPortClient = new ControlPort.Client(password: "******");
                controlPortClient.ChangeCircuit();

                // 4. Get changed TOR IP
                handler = socksPortClient.GetHandlerFromRequestUri(requestUri);
                using (var httpClient = new HttpClient(handler))
                {
                    var content = httpClient.GetAsync(requestUri).Result.Content.ReadAsStringAsync().Result;
                    Console.WriteLine($"Your other TOR IP: \t{content}");
                }
            }
        }
Пример #2
0
        private static async Task CanChangeCircuitWithinSameHttpClientAsync()
        {
            var       requestUri = "https://api.ipify.org/";
            IPAddress torIp;
            IPAddress changedIp;

            // 1. Get TOR IP
            var handler = new SocksPortHandler(Shared.HostAddress, Shared.SocksPort);

            using (var httpClient = new HttpClient(handler))
            {
                var content =
                    await(await httpClient.GetAsync(requestUri).ConfigureAwait(false)).Content.ReadAsStringAsync()
                    .ConfigureAwait(false);
                var gotIp = IPAddress.TryParse(content.Replace("\n", ""), out torIp);
                Assert.True(gotIp);

                // 2. Change TOR IP
                var controlPortClient = new ControlPort.Client(Shared.HostAddress, Shared.ControlPort, Shared.ControlPortPassword);
                await controlPortClient.ChangeCircuitAsync().ConfigureAwait(false);

                // 3. Get changed TOR IP
                content =
                    await(await httpClient.GetAsync(requestUri).ConfigureAwait(false)).Content.ReadAsStringAsync()
                    .ConfigureAwait(false);
                gotIp = IPAddress.TryParse(content.Replace("\n", ""), out changedIp);
                Assert.True(gotIp);
            }

            Assert.NotEqual(changedIp, torIp);
        }
Пример #3
0
        private static void RequestWith3Ip()
        {
            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;
                var content = message.Content.ReadAsStringAsync().Result;
                Console.WriteLine($"Your TOR IP: \t\t{content}");

                // 3. Change TOR IP
                var controlPortClient = new ControlPort.Client("127.0.0.1", controlPort: 9051, password: "******");
                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}");
            }
        }
Пример #4
0
        private static async Task IsCircuitEstabilishedAsync()
        {
            var controlPortClient = new ControlPort.Client(Shared.HostAddress, Shared.ControlPort, Shared.ControlPortPassword);
            var yes = await controlPortClient.IsCircuitEstabilishedAsync().ConfigureAwait(false);

            Assert.True(yes);
        }
Пример #5
0
        private static void CanChangeCircuit()
        {
            var       requestUri = "http://icanhazip.com/";
            IPAddress torIp;
            IPAddress changedIp;

            // 1. Get TOR IP
            using (var socksPortClient = new SocksPort.Client(HostAddress, SocksPort))
            {
                var handler = socksPortClient.GetHandlerFromDomain("icanhazip.com");
                using (var httpClient = new HttpClient(handler))
                {
                    var content = httpClient.GetAsync(requestUri).Result.Content.ReadAsStringAsync().Result;
                    var gotIp   = IPAddress.TryParse(content.Replace("\n", ""), out torIp);
                    Assert.True(gotIp);
                }

                // 2. Change TOR IP
                var controlPortClient = new ControlPort.Client(HostAddress, ControlPort, ControlPortPassword);
                controlPortClient.ChangeCircuit();

                // 3. Get changed TOR IP
                handler = socksPortClient.GetHandlerFromRequestUri(requestUri);
                using (var httpClient = new HttpClient(handler))
                {
                    var content = httpClient.GetAsync(requestUri).Result.Content.ReadAsStringAsync().Result;
                    var gotIp   = IPAddress.TryParse(content.Replace("\n", ""), out changedIp);
                    Assert.True(gotIp);
                }
            }

            Assert.NotEqual(changedIp, torIp);
        }
Пример #6
0
        private static async Task CanSendCustomCommandAsync()
        {
            var controlPortClient = new ControlPort.Client(Shared.HostAddress, Shared.ControlPort, Shared.ControlPortPassword);
            var res = await controlPortClient.SendCommandAsync("GETCONF SOCKSPORT").ConfigureAwait(false);

            Assert.StartsWith("250 SocksPort", res);
        }
Пример #7
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();

                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 = await httpClient.GetAsync(requestUri);

                var content = await message.Content.ReadAsStringAsync();

                Console.WriteLine($"Your TOR IP: \t\t{content}");

                // 3. Change TOR IP
                var controlPortClient = new ControlPort.Client("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();

                Console.WriteLine($"Your other TOR IP: \t{content}");
            }
        }
Пример #8
0
        private static async Task CanChangeCircuitMultipleTimesAsync()
        {
            var requestUri = "https://api.ipify.org/";

            // 1. Get TOR IP
            IPAddress currIp = await GetTorIpAsync(requestUri).ConfigureAwait(false);

            var controlPortClient = new ControlPort.Client(Shared.HostAddress, Shared.ControlPort, Shared.ControlPortPassword);

            for (int i = 0; i < 5; i++)
            {
                IPAddress prevIp = currIp;
                // Change TOR IP

                await controlPortClient.ChangeCircuitAsync().ConfigureAwait(false);

                // Get changed TOR IP
                currIp = await GetTorIpAsync(requestUri).ConfigureAwait(false);

                Assert.NotEqual(prevIp, currIp);
            }
        }