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; }
//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); } }
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; }
private void UpdateProxyAdressState(ref SedeCheckerProxyAdressDTO adress) { adress = CheckAdressState(adress); }