|
@@ -1,6 +1,10 @@
|
|
|
package main
|
|
package main
|
|
|
|
|
|
|
|
-import "github.com/gin-gonic/gin"
|
|
|
|
|
|
|
+import (
|
|
|
|
|
+ "log"
|
|
|
|
|
+
|
|
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
|
|
+)
|
|
|
|
|
|
|
|
import "github.com/manucorporat/stats"
|
|
import "github.com/manucorporat/stats"
|
|
|
|
|
|
|
@@ -8,8 +12,11 @@ var ips = stats.New()
|
|
|
|
|
|
|
|
func ratelimit(c *gin.Context) {
|
|
func ratelimit(c *gin.Context) {
|
|
|
ip := c.ClientIP()
|
|
ip := c.ClientIP()
|
|
|
- value := ips.Add(ip, 1)
|
|
|
|
|
- if value > 400 {
|
|
|
|
|
|
|
+ value := uint64(ips.Add(ip, 1))
|
|
|
|
|
+ if value >= 400 {
|
|
|
|
|
+ if value%400 == 0 {
|
|
|
|
|
+ log.Printf("BlockedIP:%s Requests:%d\n", ip, value)
|
|
|
|
|
+ }
|
|
|
c.AbortWithStatus(401)
|
|
c.AbortWithStatus(401)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|