Пример #1
0
        public override async Task <ProxyTypeDetails> GetProxyDetails(Proxy proxy, TaskItem task, CancellationTokenSource cancellationToken)
        {
            string proxyUriString = GetProxyUriString(proxy);

            var httpDownloaderContainer = new HttpDownloaderContainer <SocksHttpClientHandler, SocksProgressMessageHandler>();

            string content = await httpDownloaderContainer.HttpDownloader.GetContentOrNull(GetProxyTypeDetectorUrl(proxy,
                                                                                                                   Resources.SocksProxyType),
                                                                                           proxy,
                                                                                           cancellationToken);

            if (content == null)
            {
                return(new SocksProxyDetails(Application.SocksProxyHashTable[proxyUriString], null));
            }

            string[]  values = content.Split(',');
            IPAddress outgoingIPAddress;

            if (values.Length != 2 || !IPAddress.TryParse(values[1], out outgoingIPAddress))
            {
                return(new SocksProxyDetails(SocksProxyTypes.ChangesContent, null));
            }

            return(new SocksProxyDetails(Application.SocksProxyHashTable[proxyUriString], outgoingIPAddress));
        }
Пример #2
0
        static void Main(string[] args)
        {
            var url = "http://proxysearcher.sourceforge.net/Proxy%20List.php?type=http&filtered=true&limit=1000";
            ISearchEngine searchEngine = new ParallelSearchEngine(new UrlListSearchEngine(url),
                                                                  new GoogleSearchEngine(40, "http proxy list", null));

            IProxyChecker checker =
                new ProxyCheckerByUrl<HttpProxyDetailsProvider>("http://wikipedia.org/", 0.9, 100);
            IHttpDownloaderContainer httpDownloaderContainer =
                new HttpDownloaderContainer<HttpClientHandler, ProgressMessageHandler>();

            Application application = new Application(searchEngine, checker, httpDownloaderContainer);

            application.ProxyAlive += application_ProxyAlive;
            application.OnError += exception => Console.WriteLine(exception.Message);

            application.SearchAsync().GetAwaiter().GetResult();
        }
Пример #3
0
        static void Main(string[] args)
        {
            var           url          = "http://proxysearcher.sourceforge.net/Proxy%20List.php?type=http&filtered=true&limit=1000";
            ISearchEngine searchEngine = new ParallelSearchEngine(new UrlListSearchEngine(url),
                                                                  new GoogleSearchEngine(40, "http proxy list", null));

            IProxyChecker checker =
                new ProxyCheckerByUrl <HttpProxyDetailsProvider>("http://wikipedia.org/", 0.9, 100);
            IHttpDownloaderContainer httpDownloaderContainer =
                new HttpDownloaderContainer <HttpClientHandler, ProgressMessageHandler>();

            Application application = new Application(searchEngine, checker, httpDownloaderContainer);

            application.ProxyAlive += application_ProxyAlive;
            application.OnError    += exception => Console.WriteLine(exception.Message);

            application.SearchAsync().GetAwaiter().GetResult();
        }
        public override async Task<ProxyTypeDetails> GetProxyDetails(Proxy proxy, TaskItem task, CancellationTokenSource cancellationToken)
        {
            string proxyUriString = GetProxyUriString(proxy);

            var httpDownloaderContainer = new HttpDownloaderContainer<SocksHttpClientHandler, SocksProgressMessageHandler>();

            string content = await httpDownloaderContainer.HttpDownloader.GetContentOrNull(GetProxyTypeDetectorUrl(proxy,
                                                                                                                   Resources.SocksProxyType),
                                                                                           proxy,
                                                                                           cancellationToken);
            if (content == null)
                return new SocksProxyDetails(Application.SocksProxyHashTable[proxyUriString], null);

            string[] values = content.Split(',');
            IPAddress outgoingIPAddress;

            if (values.Length != 2 || !IPAddress.TryParse(values[1], out outgoingIPAddress))
                return new SocksProxyDetails(SocksProxyTypes.ChangesContent, null);

            return new SocksProxyDetails(Application.SocksProxyHashTable[proxyUriString], outgoingIPAddress);
        }