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)); }
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(); }
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); }