Exemplo n.º 1
0
        public ProxyCollection GetProxyByCountry(Country country)
        {
            string       url      = String.Format("http://spys.one/free-proxy-list/{0}/", country.abb);
            string       response = client.DownloadString(url);
            HtmlDocument html     = new HtmlDocument();

            html.LoadHtml(response);
            JavaScriptEngine parser = new JavaScriptEngine();
            var jscontext           = new AngleSharp.Parser.Html.HtmlParser().Parse(response);

            parser.EvaluateScript(jscontext, html.DocumentNode.SelectSingleNode(@"/html/body/script").InnerText);
            var res = new ProxyCollection();

            foreach (Match proxyitem in Regex.Matches(response, @"((\d+)\.(\d+)\.(\d+)\.(\d+))(<script(.*?)</script>)(.*?)(HTTP</font></a>|HTTP</font><font|SOCKS5)"))
            {
                var    proxy = new Proxy();
                string port  = (string)parser.EvaluateScript(jscontext, "\"\"+" + Regex.Match(proxyitem.Value, @"(?<=\+)(.*?)(?=\)</script)").Value);
                string ip    = Regex.Match(proxyitem.Value, @"(\d+)\.(\d+)\.(\d+)\.(\d+)").Value;
                proxy.ip   = ip;
                proxy.port = port;
                switch (proxyitem.Groups[9].Value)
                {
                case @"HTTP</font></a>": proxy.protocol = "http"; break;

                case @"HTTP</font><font": proxy.protocol = "https"; break;

                case @"SOCKS5": proxy.protocol = "socks5"; break;

                default: proxy.protocol = "unknown"; break;
                }
                res.Add(proxy);
            }
            return(res);
        }
Exemplo n.º 2
0
 private void countrySelection_SelectedIndexChanged(object sender, EventArgs e)
 {
     this.StartBusy("Downloading proxy list...");
     proxylist = wwproxy.GetProxyByCountry(countrylist[(int)this.countrySelection.SelectedIndex]);
     this.proxySelection.Items.Clear();
     foreach (Proxy proxy in proxylist)
     {
         this.proxySelection.Items.Add(proxy);
     }
     this.StopBusy();
 }