Free proxy search engine
Introduction
Proxy Searcher uses its own public search engine which based on .NET 4.5 technology. In order to use it you need to perform following steps:
-
Find the latest version of .NET library called ProxySearch.Engine.dll. You may download it here ProxySearch.Engine v4.4.
Also the latest version of ProxySearch.Engine.dll may be found at installation folder of Proxy Searcher.
-
Use examples below in order to use proxy search engine.
-
If you need more examples please leave your request at any forum.
Proxy search engine doesn't support backward compatibility, therefore when you upgrade engine you may notice that your solution is not compilable anymore.
In that case please check examples on this page again.
Examples
Following example demonstrates how to search http proxies based on parallel search engine and show them on console application.
using System;
using System.Net.Http;
using System.Net.Http.Handlers;
using ProxySearch.Engine;
using ProxySearch.Engine.Checkers;
using ProxySearch.Engine.DownloaderContainers;
using ProxySearch.Engine.Proxies;
using ProxySearch.Engine.Proxies.Http;
using ProxySearch.Engine.ProxyDetailsProvider;
using ProxySearch.Engine.SearchEngines;
namespace ProxySearch.CommandLine
{
public class Program
{
static void Main(string[] args)
{
var url = "//proxysearcher.sourceforge.net/ProxyList.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);
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 application_ProxyAlive(ProxyInfo proxyInfo)
{
switch ((HttpProxyTypes)Enum.Parse(typeof(HttpProxyTypes), proxyInfo.Details.Details.Type))
{
case HttpProxyTypes.Anonymous:
case HttpProxyTypes.HighAnonymous:
Console.WriteLine(proxyInfo.AddressPort);
break;
default:
break;
}
}
}
}
Following example demonstrates how to search socks proxies based on parallel search engine and show them on console application.
using System;
using ProxySearch.Engine;
using ProxySearch.Engine.Checkers;
using ProxySearch.Engine.DownloaderContainers;
using ProxySearch.Engine.Proxies;
using ProxySearch.Engine.Proxies.Socks;
using ProxySearch.Engine.ProxyDetailsProvider;
using ProxySearch.Engine.SearchEngines;
using ProxySearch.Engine.Socks;
namespace ProxySearch.CommandLine
{
public class Program
{
static void Main(string[] args)
{
var url = "http://proxysearcher.sourceforge.net/ProxyList.php?type=socks&filtered=true&limit=1000";
ISearchEngine searchEngine = new ParallelSearchEngine(new UrlListSearchEngine(url),
new GoogleSearchEngine(40, "socks proxy list", null));
IProxyChecker checker = new ProxyCheckerByUrl<SocksProxyDetailsProvider>("http://www.wikipedia.org/", 0.9);
IHttpDownloaderContainer httpDownloaderContainer =
new HttpDownloaderContainer<SocksHttpClientHandler, SocksProgressMessageHandler>();
Application application = new Application(searchEngine, checker, httpDownloaderContainer);
application.ProxyAlive += application_ProxyAlive;
application.OnError += exception => Console.WriteLine(exception.Message);
application.SearchAsync().GetAwaiter().GetResult();
}
static void application_ProxyAlive(ProxyInfo proxyInfo)
{
switch ((SocksProxyTypes)Enum.Parse(typeof(SocksProxyTypes), proxyInfo.Details.Details.Type))
{
case SocksProxyTypes.Socks4:
case SocksProxyTypes.Socks5:
Console.WriteLine(proxyInfo.AddressPort);
break;
default:
break;
}
}
}
}