UNPKG

domotz-remote-pawn

Version:

Domotz Agent

42 lines (33 loc) 1.07 kB
var ipManager = function (resourceLocator) { var lodash = resourceLocator.lodash; function ipToNumber(ip) { return lodash.reduce(ip.split('.'), function (acc, octet) { return ((acc << 8) + parseInt(octet, 10)) >>> 0; }, 0); } function isIpInList(ipList, ip) { return ipList && ipList.includes(ip); } function isIpInRange(ipRange, ip){ var ipNum = ipToNumber(ip); var parts = ipRange.split('-'); var startIp = parts[0]; var endIp; if (lodash.includes(parts[1], '.')) { endIp = parts[1]; } else { var baseParts = startIp.split('.'); baseParts[3] = parts[1]; endIp = baseParts.join('.'); } var startIpNum = ipToNumber(startIp); var endIpNum = ipToNumber(endIp); return ipNum >= startIpNum && ipNum <= endIpNum; } return { ipToNumber: ipToNumber, isIpInList: isIpInList, isIpInRange: isIpInRange, }; }; module.exports.factory = ipManager;