/// <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); } } }
//#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]++; } }