Esempio n. 1
0
        public void Check_socks_by_river5_client()
        {
            // default null
            var cli = new Socks5ClientStream("rt.xkip.ru", 11080, host, 80).Track(this);

            TestConnction(cli, host);

            // v5 force dns
            cli = new Socks5ClientStream("rt.xkip.ru", 11080, host, 80, proxyDns: true).Track(this);
            TestConnction(cli, host);

            // v5 force ip
            cli = new Socks5ClientStream("rt.xkip.ru", 11080, host, 80, proxyDns: false).Track(this);
            TestConnction(cli, host);

            // IPv4 - native support
            var ip = Dns.GetHostAddresses(host)
                     .FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork);

            cli = new Socks5ClientStream("rt.xkip.ru", 11080, ip.ToString(), 80).Track(this);
            TestConnction(cli, host);

            cli = new Socks5ClientStream("rt.xkip.ru", 11080, ip.ToString(), 80, proxyDns: true).Track(this);
            TestConnction(cli, host);

            cli = new Socks5ClientStream("rt.xkip.ru", 11080, ip.ToString(), 80, proxyDns: false).Track(this);
            TestConnction(cli, host);
        }
Esempio n. 2
0
        public void Should_socks5_have_a_ctor_with_proxy_and_host()
        {
            var server      = new DemoTcpServer();
            var proxyPort   = GetFreePort();
            var proxy       = new SocksServer("socks://0.0.0.0:" + proxyPort);
            var proxyClient = new Socks5ClientStream("127.0.0.1", proxyPort, "127.0.0.1", server.Port);

            var data = new byte[] { 1, 2, 3, 4 };

            proxyClient.Write(data);
            var buf = new byte[16 * 1024];
            var d   = proxyClient.Read(buf, 0, buf.Length);

            Assert.AreEqual(4, d, "Should read 4 bytes in a single packet");
            // demo server is XOR 37
            CollectionAssert.AreEqual(data.Select(x => (byte)(x ^ 37)).ToArray(), buf.Take(d).ToArray());

            server.Dispose();
            proxy.Dispose();
            proxyClient.Dispose();
        }
Esempio n. 3
0
        public void Check_socks_by_river4_client()
        {
            Stream cli;
            var    ip = new IPAddress(new byte[] { 127, 127, 127, 127 });


            using (Scope("Socks4ClientStream - default null"))
            {
                cli = new Socks4ClientStream(_proxy, _proxyPort, _host, 80).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks4ClientStream - v4a force dns"))
            {
                cli = new Socks4ClientStream(_proxy, _proxyPort, _host, 80, proxyDns: true).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks4ClientStream - v4 force i"))
            {
                cli = new Socks4ClientStream(_proxy, _proxyPort, _host, 80, proxyDns: false).Track(this);
                TestConnction(cli, _host);
            }

            // IPv4 - native support

            using (Scope("Socks4ClientStream 4"))
            {
                cli = new Socks4ClientStream(_proxy, _proxyPort, ip.ToString(), 80).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks4ClientStream 5"))
            {
                cli = new Socks4ClientStream(_proxy, _proxyPort, ip.ToString(), 80, proxyDns: true).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks4ClientStream 6"))
            {
                cli = new Socks4ClientStream(_proxy, _proxyPort, ip.ToString(), 80, proxyDns: false).Track(this);
                TestConnction(cli, _host);
            }


            using (Scope("Socks5ClientStream"))
            {
                // default null
                cli = new Socks5ClientStream(_proxy, _proxyPort, _host, 80).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks5ClientStream proxyDns: true"))
            {
                // v5 force dns
                cli = new Socks5ClientStream(_proxy, _proxyPort, _host, 80, proxyDns: true).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks5ClientStream proxyDns: false - v5 force ip"))
            {
                cli = new Socks5ClientStream(_proxy, _proxyPort, _host, 80, proxyDns: false).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks5ClientStream - IPv4 - native support"))
            {
                cli = new Socks5ClientStream(_proxy, _proxyPort, ip.ToString(), 80).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks5ClientStream proxyDns true"))
            {
                cli = new Socks5ClientStream(_proxy, _proxyPort, ip.ToString(), 80, proxyDns: true).Track(this);
                TestConnction(cli, _host);
            }

            using (Scope("Socks5ClientStream proxyDns false"))
            {
                cli = new Socks5ClientStream(_proxy, _proxyPort, ip.ToString(), 80, proxyDns: false).Track(this);
                TestConnction(cli, _host);
            }
        }