Exemplo n.º 1
0
        void DoWorkInternal(object actionState)
        {
            ProxyDatum proxy = actionState as ProxyDatum;

            //var addressFamily = AddressFamily.InterNetwork;
            var socketType   = SocketType.Stream;
            var protocolType = ProtocolType.Tcp;

            bool isProxyInvalid = true;

            lock (State)
            {
                ++State.Testing;
            }

            foreach (var proxyTypeToTest in proxyTypesToTest)
            {
                bool isProxySocketValid = ProbeProxy(proxy, socketType, protocolType, proxyTypeToTest, MaximumConnectionTime);

                SpinProxiesApiWrapper.WriteTempContent(spinProxiesData, SpinProxiesProxyClass.Socks5);

                isProxyInvalid = (isProxyInvalid && !isProxySocketValid);

                if (isProxySocketValid)
                {
                    lock (State)
                    {
                        ++State.Available;
                    }

                    lock (availableProxiesList)
                    {
                        availableProxiesList.Add(proxy);
                    }

                    break;
                }
            }

            lock (State)
            {
                ++State.Tested;
            }

            if (isProxyInvalid)
            {
                lock (State)
                {
                    ++State.Failed;
                }
            }
        }
Exemplo n.º 2
0
        private ProxyTester()
        {
            spinProxiesApiWrapper = new SpinProxiesApiWrapper();
            spinProxiesData       = spinProxiesApiWrapper.FetchProxyList(SpinProxiesProxyClass.Socks5);

            probeProxyHeaderBuffer = new FluentHeaderBuilder()
                                     .AddMethod("http://c.statcounter.com/11592521/0/dc42a2e3/0/", HttpMethod.Get)
                                     .Add(HttpRequestHeader.Host, "c.statcounter.com")
                                     .Add(HttpRequestHeader.Connection, "keep-alive")
                                     .Add(HttpRequestHeader.CacheControl, "max-age=0")
                                     .AddCustom("Upgrade-Insecure-Requests", "1")
                                     .Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36")
                                     .Add(HttpRequestHeader.Accept, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")
                                     .Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate")
                                     .Add(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.9,ro;q=0.8")
                                     .Add(HttpRequestHeader.Pragma, "no-cache")
                                     .BuildAsByteArray();
        }