思路大概是這樣的:
1.獲取到發出請求的客戶端的IP
2.將該IP存入Cache作為KEY,將次數作為Value初始化為0,過期時間設置為1分鍾
3.每次請求都將value+1,超過指定的次數后返回false
代碼是這樣的:
/// <summary>
/// 同一Ip地址重復頻繁訪問限制
/// 同一IP地址,1分鍾內不能請求5次以上
/// </summary>
/// <param name="ip">發出請求的IP地址</param>
/// <returns></returns>
private bool ValidIp()
{
var ip = IpToAddress.GetClientIP();
if (MemCacheHelper.GetObject(ip) != null)
{
var cacheVal = (int)MemCacheHelper.GetObject(ip);
if (cacheVal > 5)
{
return false;
}
MemCacheHelper.SetObject(ip, (int)MemCacheHelper.GetObject(ip) + 1, 60);
}
MemCacheHelper.SetObject(ip, 0, 60);
return true;
}
注:以上思路和代碼是本人在開發功能的過程中臨時想到的,因為怕忘記,所以記到博客上,具體是否可行,還未進行測試。
如有錯誤,望大神指正!

更多技術問題,歡迎關注公眾號【程序員在職場】進行獲取
