JSFiddle - React, Tailwind, and code Playground
by Tim Ko
JavaScript
var parseIp = (ip) => ip.split(".").reduce((result, part) => (result << 8) + parseInt(part), 0);
var createMask = (mask) => (mask === 0) ? -1 : -1 << (32 - mask)
var compareRule = (mask, ruleIp, ip) => parseInt(mask & ruleIp) === parseInt(mask & ip);
var isValidIp = (rules, ip) => rules.reduce((result, rule) => result || !!compareRule(parseIp(rule.split("/")[0]), parseIp(ip), createMask(rule.split("/")[1])), false);
console.log(isValidIp(["1.2.3.2/31"], "1.2.3.0"));