Exemplo n.º 1
0
        public GironaController(SedeTaskData user, SedeCheckerProxyAdressDTO adress, ILogger logger, IRecaptchaV2Resolver recaptchaV2Resolver) : base()
        {
            this.UserData = user;

            this.Logger = logger;

            this.Adress = adress;

            this.userService = new UserService();

            _f = new FileService(Logger);

            recaptcharResolver = recaptchaV2Resolver;
            recaptcharResolver.OnRecaptchaV2TaskCallback += this.RecaptcharResolver_OnRecaptchaV2TaskCallback;
        }
Exemplo n.º 2
0
        //private SedeCheckerProxyAdressDTO[] ParseAdresses()
        //{
        //    var fl = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\Sede\\proxyes.txt";

        //    if (!File.Exists(fl))
        //    {
        //        MessageBox.Show("Some error detected: file with proxy adresses cannot be parsed", "Parse error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        //        return null;
        //    }

        //    try
        //    {
        //        string FileData = File.ReadAllText(fl);

        //        var FileDataArray = FileData.Split(' ');

        //        var Adresses = new List<SedeCheckerProxyAdressDTO>();
        //        foreach (var FD in FileDataArray)
        //        {
        //            var IpAdress = FD.Remove(FD.IndexOf(":"));
        //            var host = FD.Remove(0, FD.IndexOf(":") + 1);
        //            Adresses.Add(new SedeCheckerProxyAdressDTO()
        //            {
        //                Ip = IpAdress,
        //                Host = host
        //            });
        //        }

        //        return Adresses.ToArray();
        //    }
        //    catch (Exception e)
        //    {
        //        Console.WriteLine(e);
        //        throw;
        //    }



        //}

        private SedeCheckerProxyAdressDTO CheckAdressState(SedeCheckerProxyAdressDTO adress)
        {
            const string NCSI_TEST_URL       = "http://www.msftncsi.com/ncsi.txt";
            const string NCSI_TEST_RESULT    = "Microsoft NCSI";
            const string NCSI_DNS            = "dns.msftncsi.com";
            const string NCSI_DNS_IP_ADDRESS = "131.107.255.255";

            try
            {
                var ws = new WebClient
                {
                    Proxy = new WebProxy(adress.Ip, int.Parse(adress.Host))
                    {
                        UseDefaultCredentials = true,
                        BypassProxyOnLocal    = true
                    }
                };

                var TestString = ws.DownloadString(NCSI_TEST_URL);
                if (TestString != NCSI_TEST_RESULT)
                {
                    adress.IsConnectionAvailible = false;
                    return(adress);
                }
                var DnsHost = Dns.GetHostEntry(NCSI_DNS);
                if (DnsHost.AddressList.Length < 0 || DnsHost.AddressList[0].ToString() != NCSI_DNS_IP_ADDRESS)
                {
                    adress.IsConnectionAvailible = false;
                    return(adress);
                }
                this.Logger.Info($"Address {adress.Ip}:{adress.Host} is online.");
                adress.IsConnectionAvailible = true;
                this.InvokeOnProxyCallback();
                return(adress);
            }
            catch (WebException)
            {
                this.Logger.Warning($"Proxy [{adress.Ip}:{adress.Host}] are not stable, skip it...");
                adress.IsConnectionAvailible = false;
                return(adress);
            }
            catch (System.Net.Sockets.SocketException)
            {
                this.Logger.Warning($"Proxy [{adress.Ip}:{adress.Host}] are not stable, skip it...");
                adress.IsConnectionAvailible = false;
                return(adress);
            }
        }
Exemplo n.º 3
0
        public BarcelonaController(SedeTaskData user,
                                   SedeCheckerProxyAdressDTO proxy,
                                   ILogger logger,
                                   IRecaptchaV2Resolver recaptchaV2Resolver,
                                   SeaSettings settings) : base()
        {
            this.UserData = user;

            this._logger = logger;

            this._proxy = proxy;

            _settings = settings;

            _controllerSettings = settings.ControllerSettings;

            _scripts = settings.SedeScripts.Scripts;

            _f = new FileService(_logger);

            CaptchaResolver = recaptchaV2Resolver;
        }
        public ConstitutionController(ConstitutionTaskData user,
                                      SedeCheckerProxyAdressDTO proxy,
                                      ILogger logger,
                                      IRecaptchaV2Resolver recaptchaV2Resolver,
                                      SeaSettings settings,
                                      ScriptsSettings scripts)
        {
            this.UserData = user;

            this._logger = logger;

            this._settings = settings.ControllerSettings;

            _s = settings;

            this._proxy = proxy;

            _scripts = scripts.Scripts;

            _f = new FileService(_logger);

            CaptchaResolver = recaptchaV2Resolver;
        }
Exemplo n.º 5
0
 private void UpdateProxyAdressState(ref SedeCheckerProxyAdressDTO adress)
 {
     adress = CheckAdressState(adress);
 }