toxy-ip

0.1.0 • Public • Published

toxy-ip Build Status NPM

toxy rule to filter by IP v4/v6 addresses, supporting CIDR, subnets and custom/public/reserved IP ranges.

toxy+0.3
Nameip
Poison Phaseincoming / outgoing

Installation

npm install toxy-ip [--save]

Usage

const toxy = require('toxy')
const ip = require('toxy-ip')
 
const proxy = toxy()
 
proxy
  .all('/')
  .poison(toxy.poisons.slowRead({ delay: 1000 }))
  .withRule(ip('192.168.0.0/24'))
 
proxy
  .all('/download')
  .poison(toxy.poisons.bandwidth({ bps: 1024 }))
  .withRule(ip('10.0.0.0/20'))
 
proxy
  .all('/intranet')
  .poison(toxy.poisons.bandwidth({ bps: 1024 }))
  .withRule(ip([ '192.168.0.0/24', '172.12.0.0/22', '10.0.0.0/12' ]))
 
proxy
  .all('/custom-range')
  .poison(toxy.poisons.bandwidth({ bps: 1024 }))
  .withRule(ip({ range: [ '192.168.0.10', '192.168.0.25' ] }))
 
proxy
  .all('/private')
  .poison(toxy.poisons.bandwidth({ bps: 1024 }))
  .withRule(ip({ privateAddress: true }))
 
proxy
  .all('/local')
  .poison(toxy.poisons.inject({ code: 500 }))
  .withRule(ip({ loopback: true }))
 
proxy.listen(3000)

API

const ip = require('toxy-ip')

ip(opts) => function (req, res, next)

Available options:

  • address string - Matches an IP address using a equality comparison. Supports CIDR expressions for ranges.
  • network string|array - List of CIDR addresses to filter. Array can contain multiple CIDR addresses.
  • range array - Pair of IP range to match.
  • privateAddress boolean - Matches if the client address is a reserved private range. Default false
  • publicAddress boolean - Matches if the client address is a non-reserved IP range. Default false
  • loopback boolean - Matches if the client address is a loopback valid address. Default false

ip.evalRange(range, ip) => boolean

Evaluates if the IP is inside the given range. range must be an array with two items representing the IP range.

ip.evalNetwork(networks, ip) => boolean

Evaluates if the IP is inside a

ip.evalType(opts, ip) => boolean

Evaluates if the IP is public, private or loopback IP address.

ip.ip

Exposes node-ip module API.

License

MIT - Tomas Aparicio

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.0
    0
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.0
    0

Package Sidebar

Install

npm i toxy-ip

Weekly Downloads

0

Version

0.1.0

License

MIT

Last publish

Collaborators

  • h2non