Пример #1
0
 /// <summary>
 /// کم کردن تعداد درخواست هر آی پی در هر ثانیه
 /// </summary>
 private static void TimerElapsed(object sender, ElapsedEventArgs e)
 {
     foreach (var key in IpAdresses.Keys)
     {
         IpAdresses[key]--;
         if (IpAdresses[key] == 0)
         {
             IpAdresses.Remove(key);
         }
     }
 }
Пример #2
0
        //#endregion

        //#region CheckIpAddress
        /// <summary>
        /// چک میکنیم که آیا آی پی مورد نظر در لیست
        /// آی پی های است یا خیر ، اگر از حد تعیین شده زیاد بود درخواست هایش لذا بلاک شود
        /// </summary>
        /// <param name="ip">آی پی شخص</param>
        private static void CheckIpAddress(string ip)
        {
            if (!IpAdresses.ContainsKey(ip))
            {
                IpAdresses[ip] = 1;
            }
            else if (IpAdresses[ip] == BannedRequests)
            {
                Banned.Push(ip);
                IpAdresses.Remove(ip);
            }
            else
            {
                IpAdresses[ip]++;
            }
        }