Skip to content
Ip filter middleware for koa, support whitelist and blacklist.
JavaScript
Branch: master
Clone or download
Latest commit 1af556f Dec 21, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
__tests__ Bump v2.0.0 Dec 21, 2018
.eslintrc.json Bump v2.0.0 Dec 21, 2018
.gitignore Bump v2.0.0 Dec 21, 2018
History.md Bump v2.0.0 Dec 21, 2018
index.js Bump v2.0.0 Dec 21, 2018
package.json Bump v2.0.0 Dec 21, 2018
readme.md Bump v2.0.0 Dec 21, 2018

readme.md

koa-ip

KoaJs Slack

koa-ip is a ip filter middleware for koa, support whitelist and blacklist.

Install

$ npm i koa-ip --save
or 
$ yarn add koa-ip

Usage

ip(String|RegExp)
ip(Array{String|RegExp})
ip({
  whitelist: Array{String|RegExp},
  blacklist: Array{String|RegExp},
  handler: async (ctx, next) => {}// handle blacklist ip
})

Examples

const Koa = require('koa')
const ip = require('koa-ip')

const app = new Koa()

app.use(ip('192.168.0.*'))// whitelist
// app.use(ip(['192.168.0.*', '8.8.8.[0-3]']))// whitelist
// app.use(ip({
//   whitelist: ['192.168.0.*', '8.8.8.[0-3]'],
//   blacklist: ['144.144.*']
// }))

app.listen(3000)

blacklist handler

const app = new Koa()
app.use((ctx, next) => {
  ctx.request.ip = '127.0.0.1'
  return next()
})
app.use(ip({
  blacklist: ['127.0.0.*'],
  handler: async (ctx, next) => {
    ctx.status = 403
  }
}))

app.use((ctx, next) => {
  ctx.status = 200
})

app.listen(3000)

NB: If missing blacklist handler, default ctx.status = 403.

More examples see test.

Test

$ npm test (coverage 100%)
or
$ yarn test (coverage 100%)

License

MIT

You can’t perform that action at this time.