UNPKG

848 BJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = isIPRange;
7
8var _assertString = _interopRequireDefault(require("./util/assertString"));
9
10var _isIP = _interopRequireDefault(require("./isIP"));
11
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14var subnetMaybe = /^\d{1,2}$/;
15
16function isIPRange(str) {
17 (0, _assertString.default)(str);
18 var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet
19
20 if (parts.length !== 2) {
21 return false;
22 }
23
24 if (!subnetMaybe.test(parts[1])) {
25 return false;
26 } // Disallow preceding 0 i.e. 01, 02, ...
27
28
29 if (parts[1].length > 1 && parts[1].startsWith('0')) {
30 return false;
31 }
32
33 return (0, _isIP.default)(parts[0], 4) && parts[1] <= 32 && parts[1] >= 0;
34}
35
36module.exports = exports.default;
\No newline at end of file