Пример #1
0
 public Setting(UserAgentStruct userAgent, HttpHeaderStruct httpHeader, PolicyStruct policy, ProxyStruct proxy)
 {
     _userAgent  = userAgent;
     _httpHeader = httpHeader;
     _policy     = policy;
     _proxy      = proxy;
 }
Пример #2
0
 public Setting(UserAgentStruct userAgent,HttpHeaderStruct httpHeader,PolicyStruct policy,ProxyStruct proxy)
 {
     _userAgent = userAgent;
     _httpHeader = httpHeader;
     _policy = policy;
     _proxy = proxy;
 }
Пример #3
0
        internal static async Task <List <HttpRequest> > GetRequestList(IEnumerable <string> proxies)
        {
            var list = new List <HttpRequest>();

            try
            {
                foreach (var x in proxies.Distinct().Where(x => !string.IsNullOrEmpty(x)))
                {
                    try
                    {
                        var str = new ProxyStruct();
                        var arr = x.Split('@');
                        str.Host  = arr[1];
                        str.Login = arr[0];

                        switch (arr[2].ToLower())
                        {
                        case "http":
                        case "https":
                            str.Type = ProxyType.Http;
                            break;

                        case "socks4":
                            str.Type = ProxyType.Socks4;
                            break;

                        case "socks4a":
                            str.Type = ProxyType.Socks4a;
                            break;

                        case "socks5":
                            str.Type = ProxyType.Socks5;
                            break;

                        default:
                            str.Type = ProxyType.Http;
                            break;
                        }

                        list.Add(await RequestHelper.GetRequestTaskAsync(str));
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                Informer.RaiseOnResultReceived(ex);
            }

            if (list.Count == 0)
            {
                list.Add(RequestHelper.GetRequest);
            }

            return(list);
        }
Пример #4
0
        public static async Task <List <PersonStruct> > ParsePersonsList(string workBookPath)
        {
            return(await Task.Run(() =>
            {
                var list = new List <PersonStruct>();
                try
                {
                    var fileFullPath = Path.GetFullPath(workBookPath);

                    XSSFWorkbook xssfwb;
                    using (var file = new FileStream(fileFullPath, FileMode.Open, FileAccess.Read))
                        xssfwb = new XSSFWorkbook(file);

                    var sheet = xssfwb.GetSheet(xssfwb.GetSheetName(0));

                    for (var num = 1; num <= sheet.LastRowNum; num++)
                    {
                        try
                        {
                            var row = sheet.GetRow(num);
                            if (row == null) //null is when the row only contains empty cells
                            {
                                continue;
                            }

                            var proxy = new ProxyStruct
                            {
                                Host = row.GetCell(4).StringCellValue,
                                Login = row.GetCell(5).StringCellValue,
                                Type = (ProxyType)Enum.Parse(typeof(ProxyType), row.GetCell(6).StringCellValue)
                            };

                            var person = new PersonStruct
                            {
                                FirstName = row.GetCell(2).StringCellValue,
                                LastName = row.GetCell(3).StringCellValue,
                                Mail = row.GetCell(0).StringCellValue,
                                Pass = row.GetCell(1).StringCellValue,
                                Proxy = proxy
                            };
                            list.Add(person);
                        }
                        catch (Exception ex)
                        {
                            Informer.RaiseOnResultReceived(ex.Message);
                            Informer.RaiseOnResultReceived($"Is error in {num + 1} row");
                        }
                    }
                }
                catch (Exception ex)
                {
                    Informer.RaiseOnResultReceived(ex.Message);
                }
                return list;
            }));
        }
Пример #5
0
        public static async Task <HttpRequest> GetRequestTaskAsync(ProxyStruct str)
        {
            var req = GetRequest;

            return(await Task.Run(() =>
            {
                try
                {
                    var host = str.Host;
                    var login = str.Login;
                    var type = str.Type;

                    if (string.IsNullOrEmpty(host) || !host.Contains(":"))
                    {
                        return req;
                    }

                    var arr = host.Split(':');
                    switch (type)
                    {
                    case ProxyType.Http:
                        req.Proxy = new HttpProxyClient(arr[0], int.Parse(arr[1]));
                        break;

                    case ProxyType.Socks4:
                        req.Proxy = new Socks4ProxyClient(arr[0], int.Parse(arr[1]));
                        break;

                    case ProxyType.Socks4a:
                        req.Proxy = new Socks4aProxyClient(arr[0], int.Parse(arr[1]));
                        break;

                    case ProxyType.Socks5:
                        req.Proxy = new Socks5ProxyClient(arr[0], int.Parse(arr[1]));
                        break;

                    default:
                        req.Proxy = new HttpProxyClient(arr[0], int.Parse(arr[1]));
                        break;
                    }

                    if (!string.IsNullOrEmpty(login) && login.Contains(":"))
                    {
                        var arrr = login.Split(':');
                        req.Proxy.Username = arrr[0];
                        req.Proxy.Password = arrr[1];
                    }
                }
                catch (Exception ex)
                {
                    Informer.RaiseOnResultReceived(ex.Message);
                }
                return req;
            }));
        }
Пример #6
0
        public unsafe SharedTypeHolder <TType> GetOrAddType <TType>()
        {
            if (addresses.ContainsKey(typeof(TType)))
            {
                return(new SharedTypeHolder <TType>(addresses[typeof(TType)]));
            }

            var mt         = (MethodTableInfo *)(typeof(TType).TypeHandle.Value);
            var structsize = Marshal.SizeOf(typeof(MethodTableInfo));
            var size       = structsize;
            var vmt_size   = 4 * mt->VirtMethodsCount;

            size += vmt_size;

            var newmt = lastPtr;

            WinApi.memcpy(newmt, (IntPtr)mt, size);
            lastPtr = (IntPtr)((int)lastPtr + structsize);
            var newvmt_addr = (int *)lastPtr;

            lastPtr = (IntPtr)((int)lastPtr + vmt_size);

            var proxiesFrom = (int *)((byte *)mt + structsize);
            var proxiesTo   = (ProxyStruct *)lastPtr;

            int index = 0;

            for (index = 0; index < mt->VirtMethodsCount; index++)
            {
                var slot = new ProxyStruct(proxiesFrom[index] - ((int)&proxiesTo[index] + 5));
                proxiesTo[index]   = slot;
                newvmt_addr[index] = (int)&proxiesTo[index];
            }

            lastPtr = (IntPtr)((int)lastPtr + mt->VirtMethodsCount * 5);
            addresses.Add(typeof(TType), newmt);

            ((MethodTableInfo *)newmt)->ParentTable = mt; // support inheristance

            return(new SharedTypeHolder <TType>(newmt));
        }
Пример #7
0
        public static async Task <Queue <ProxyStruct> > GetProxyStruct(ProxyStruct str)
        {
            return(await Task.Run(() =>
            {
                var queue = new Queue <ProxyStruct>();
                try
                {
                    var host = string.IsNullOrEmpty(str.Host) ? string.Empty : str.Host;
                    var login = string.IsNullOrEmpty(str.Login) ? string.Empty : str.Login;
                    var type = str.Type;

                    foreach (var s in host.Split(','))
                    {
                        queue.Enqueue(new ProxyStruct {
                            Host = s, Login = login, Type = type
                        });
                    }
                }
                catch (Exception)
                {
                }
                return queue;
            }));
        }
Пример #8
0
 public PersonStruct()
 {
     Proxy = new ProxyStruct();
 }