Socket
Socket
Sign inDemoInstall

ip-domain-filter

Package Overview
Dependencies
3
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ip-domain-filter

Filter and validates IP, IP Ranges and Domain


Version published
Maintainers
1
Install size
2.50 MB
Created

Readme

Source

ip-domain-filter

Validates IPs (IPv4 and IPv6) and domain names using micromatch ruleset. Can be used for IP/Domain whitelisting functionality.

Install

npm i ip-domain-filter --save

Usage

const hostFilter = require('ip-domain-filter');

let rules = [{
    category: 'ip',
    allowed: ['127.0.0.2', '127.0.0.4', '127.0.0.6']
  },
  {
    category: 'domain',
    allowed: ['localhost', 'google.com']
  },
  {
    category: 'ipRange',
    allowed: ['127.1.0.8', '127.1.0.20']
  },
  {
    category: 'ip',
    allowed: ['192.168.??.1']
  },
  {
    category: 'ip',
    allowed: ['192.168.1.*']
  }
];

let caseA = '192.168.10.1';
hostFilter.filter(caseA, rules);
// Returns true as it matches 4th rule.

let caseB = '192.168.2.1';
hostFilter.filter(caseB, rules);
// Returns false as it does'nt match any of the rules.


For more use-cases see the tests

Params

  • ip {String}: Accepts IP and Domain names.
  • rules {Array}: Filter rules/conditions.
  • returns {Bool}: If there is a match it returns true, otherwise false.

Rules

Rule will be an object array having 2 parameters category and allowed.

CategoryDescription
ipTo check whether the given IP is valid in a list of IP's.
ipRangeTo check whether the given ip is in a range or not.
domainTo check wheter the domain matches a given list of domains.

Examples

(1) Rule using ip, This will check whether the given ip is available in the allowed list or not.

let rules = [{
    category: 'ip',
    allowed: ['127.0.0.2', '127.0.0.4', '127.0.0.6']
  }
]

(2) Rule using ipRange, This will check whether the given ip is between the specified range or not.

Note: In the case of ipRange, allowed should have only 2 values, [ipStart, ipEnd]

let rules = [{
    category: 'ipRange',
    allowed: ['127.1.0.8', '127.1.0.20']
  }
]

(3) Rule using domain, This will check whether the given domain is between the specified list or not.

let rules = [{
    category: 'domain',
    allowed: ['localhost', 'google.com']
  }
]

Extended Useage

(4) Rule using ip with micromatch, This will check whether the given ip is in the format 192.168.*.1. And the * can be any character.

let rules = [{
    category: 'ip',
    allowed: ['192.168.*.1']
  }
]

// 192.168.1.1 - true
// 192.168.10.1 - true
// 192.168.1.2 - false

(5) Rule using ip with micromatch, This will check whether the given ip is in the format 192.168.?.1. And the ? can be any character from 0 to 9.

let rules = [{
    category: 'ip',
    allowed: ['192.168.?.1']
  }
]

// 192.168.1.1 - true
// 192.168.9.1 - true
// 192.168.10.1 -  false

FAQs

Last updated on 09 Apr 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc