VPNBan
A small Express middleware used to filter suspected VPN IP addresses (and more)
This module uses the GetIPIntel VPN detection API to detect if someone is trying to connect to your Express server using a VPN.
Installation
npm install vpnban
Usage
const express = require('express')
const app = express()
const VPNBan = require('vpnban')
let ban = new VPNBan({
callback: (req,res,next) => {}
})
app.use(ban)
app.get(`/`, (req,res) => {
res.send(`Not a VPN!`)
})
Other Features
The module can also filter any IP addresses that you want.
const express = require('express')
const app = express()
const VPNBan = require('vpnban')
let ban = new VPNBan({
vpn: false,
blocked_ips: ["1.2.3.4"],
callback: (req,res,next) => {
res.send("You've been blocked")
}
})
app.use(ban)
app.get('/', (req,res) => {
res.send(`Not blocked!`)
})
Why?
I wrote this module for people who don't want VPN users evading their IP bans. It is a major issue on many platforms.
I also use it in my own Express apps, so functionality is guaranteed.