예제 #1
0
        public RandomUserAgent()
        {
            var formattedUserAgentsLength = FormattedUserAgents.Length;

            formattedUserAgentsCircularList =
                new CircularList <int>(() => new UniqueRandomizer().GenerateRandom(formattedUserAgentsLength, 0, formattedUserAgentsLength));

            templateFields = new Dictionary <String, Func <object> >();

            templateFields.Add("AndroidVersion", () => $"{RandomizerHq.RandomInt(2, 6)}.{RandomizerHq.RandomInt(0, 4)}.{RandomizerHq.RandomInt(0, 5)}");
            templateFields.Add("BaiduSpiderName", () => BaiduSpiderNames[RandomizerHq.RandomInt(0, BaiduSpiderNames.Length)]);
            templateFields.Add("BotVersion", () => { var value = RandomizerHq.RandomInt(200, 500).ToString(); return($"{value[0]}.{value[1]}.{value[2]}"); });
            templateFields.Add("BlackBerryVersion", () => 9000 + 100 * RandomizerHq.RandomInt(1, 9) + 10 * RandomizerHq.RandomInt(1, 5));
            templateFields.Add("FacebookBotName", () => FacebookBotNames[RandomizerHq.RandomInt(0, FacebookBotNames.Length)]);
            templateFields.Add("FacebookBotVersion", () => RandomizerHq.RandomInt(10, 21).ToString("0.0"));
            templateFields.Add("GenericVersion", () => $"{RandomizerHq.RandomInt(4, 7)}.{RandomizerHq.RandomInt(0, 6)}.{RandomizerHq.RandomInt(2, 7)}.{RandomizerHq.RandomInt(100, 666)}");
            templateFields.Add("GoogleBotName", () => GoogleBotNames[RandomizerHq.RandomInt(0, GoogleBotNames.Length)]);
            templateFields.Add("IeVersion", () => IeVersions[RandomizerHq.RandomInt(0, IeVersions.Length)]);
            templateFields.Add("IOsVersion", () => $"{RandomizerHq.RandomInt(3, 7)}_{RandomizerHq.RandomInt(0, 4)}_{RandomizerHq.RandomInt(0, 5)}");
            templateFields.Add("MozillaVersion", () => (RandomizerHq.RandomInt(30, 50) / 10).ToString("0.0"));
            templateFields.Add("OperaVersion", () => RandomizerHq.RandomInt(5, 10));
            templateFields.Add("RvVersion", () => $"{RandomizerHq.RandomInt(36, 47)}.0");
            templateFields.Add("SafariVersion", () => $"{RandomizerHq.RandomInt(333, 999)}.{RandomizerHq.RandomInt(1, 69)}");
            templateFields.Add("WindowsVersion", () => WindowsVersions[RandomizerHq.RandomInt(0, WindowsVersions.Length)]);
        }
예제 #2
0
        public string GetRandomElement()
        {
            var value = referersCircularList.Value;

            referersCircularList.Next();

            var referer = referers[value];

            var query = RandomizerHq.RandomString(RandomizerHq.RandomInt(6, 15));

            return(referer.GetRandomElement(query));
        }
예제 #3
0
 public static FluentHeaderBuilder RandomFluentHeader(HttpMethod method, string urlPath, string host, bool appendRandomsToUrlPath = false, bool useGzip = false, int keepAliveTime = 0)
 {
     return(new FluentHeaderBuilder()
            .AddMethodWithConditionalExtraPath($"{urlPath}", method, RandomizerHq.RandomString(), appendRandomsToUrlPath)
            .Add(HttpRequestHeader.Host, host)
            .Add(HttpRequestHeader.CacheControl, "no-cache")
            .Add(HttpRequestHeader.UserAgent, RandomizerHq.RandomUserAgent())
            .Add(HttpRequestHeader.Referer, RandomizerHq.RandomReferer())
            .Add(HttpRequestHeader.Accept, "*/*")
            .AddConditional(HttpRequestHeader.KeepAlive, keepAliveTime, keepAliveTime > 0)
            .AddConditional(HttpRequestHeader.Connection, "keep-alive", keepAliveTime > 0)
            //.Add(HttpRequestHeader.ContentLength, 42)
            .AddConditional(HttpRequestHeader.AcceptEncoding, "gzip,deflate", useGzip));
 }
예제 #4
0
        public static Byte[] RandomByteArray(int count)
        {
            var data = new Byte[count];

            // Fill an array with 0 to (count - 1) random bytes
            int idx = 0;

            while (idx < RandomizerHq.RandomInt(0, count - 1))
            {
                data[idx++] = Convert.ToByte(RandomizerHq.RandomInt(Byte.MinValue, Byte.MaxValue));
            }

            return(data);
        }