ipblock

0.0.3 • Public • Published

ipblock

koa middleware 限制ip访问次数

Installation

npm install ipblock	

Example

code

 
var koa = require("koa");
var app = koa(), ipblock = require("ipblock");
 
// block router
// test: 100000 ms / 10 times
 
ipblock(app, {method: "get", path:"/block", times: 10, range: 10000});
ipblock(app, {method: "post", path:"/block", times: 10, range: 10000});
ipblock(app, {method: "get", path:"/block/:id", times: 10, range: 10000});
 
 
app.use(function*(){
 
    this.body = "Hello World";
});
 
app.listen(4000);
 

Test

bash

    sh testes/test.sh

output

200
200
200
200
200
200
200
200
200
200
403

策略 (假设30s 限制10次访问

  • 时间节点A,开始访问
  • 则设A为cursor。开始计数,达到10次,则 开始触发block算法。
  • 如果当前时间戳 - A > 30s,则 A的节点往前移一位,且把当前时间戳压入栈。
  • 如果当前时间戳 - A < 30s,则 返回403,不做任何操作。

Package Sidebar

Install

npm i ipblock

Weekly Downloads

0

Version

0.0.3

License

MIT

Last publish

Collaborators

  • imappbox