
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
ip-domain-filter
Advanced tools
Validates IPs (IPv4 and IPv6) and domain names using micromatch ruleset. Can be used for IP/Domain whitelisting functionality.
npm i ip-domain-filter --save
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.Rule will be an object array having 2 parameters category and allowed.
| Category | Description |
|---|---|
| ip | To check whether the given IP is valid in a list of IP's. |
| ipRange | To check whether the given ip is in a range or not. |
| domain | To check wheter the domain matches a given list of domains. |
(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']
}
]
(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
Filter and validates IP, IP Ranges and Domain
We found that ip-domain-filter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.