toxy
rule to filter by IP v4
/v6
addresses, supporting CIDR, subnets and custom/public/reserved IP ranges.
toxy | +0.3 |
Name | ip |
Poison Phase | incoming / outgoing |
npm install toxy-ip [--save]
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)
const ip = require('toxy-ip')
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. Defaultfalse
- publicAddress
boolean
- Matches if the client address is a non-reserved IP range. Defaultfalse
- loopback
boolean
- Matches if the client address is a loopback valid address. Defaultfalse
Evaluates if the IP is inside the given range.
range
must be an array
with two items representing the IP range.
Evaluates if the IP is inside a
Evaluates if the IP is public, private or loopback IP address.
Exposes node-ip
module API.
MIT - Tomas Aparicio