Comparing version 2.0.1 to 2.0.2
@@ -34,6 +34,26 @@ // Generated by CoffeeScript 1.12.7 | ||
} | ||
while (b.length < 4) { | ||
b.unshift(0); | ||
switch (b.length) { | ||
case 1: | ||
if (b[0] > 0xFFFFFFFF) { | ||
throw new Error('Invalid IP'); | ||
} | ||
return b[0] >>> 0; | ||
case 2: | ||
if (b[0] > 0xFF || b[1] > 0xFFFFFF) { | ||
throw new Error('Invalid IP'); | ||
} | ||
return (b[0] << 24 | b[1]) >>> 0; | ||
case 3: | ||
if (b[0] > 0xFF || b[1] > 0xFF || b[2] > 0xFFFF) { | ||
throw new Error('Invalid IP'); | ||
} | ||
return (b[0] << 24 | b[1] << 16 | b[2]) >>> 0; | ||
case 4: | ||
if (b[0] > 0xFF || b[1] > 0xFF || b[2] > 0xFF || b[3] > 0xFF) { | ||
throw new Error('Invalid IP'); | ||
} | ||
return (b[0] << 24 | b[1] << 16 | b[2] << 8 | b[3]) >>> 0; | ||
default: | ||
throw new Error('Invalid IP'); | ||
} | ||
return (b[0] << 24 | b[1] << 16 | b[2] << 8 | b[3]) >>> 0; | ||
}; | ||
@@ -61,3 +81,3 @@ | ||
base = 16; | ||
} else if ('0' <= s[i + 1] && s[i + 1] <= '7') { | ||
} else if ('0' <= s[i + 1] && s[i + 1] <= '9') { | ||
i++; | ||
@@ -69,10 +89,10 @@ base = 8; | ||
start = i; | ||
while (s.length > 0) { | ||
while (i < s.length) { | ||
if ('0' <= s[i] && s[i] <= dmax) { | ||
n = n * base + (chr(s[i]) - chr0); | ||
n = (n * base + (chr(s[i]) - chr0)) >>> 0; | ||
} else if (base === 16) { | ||
if ('a' <= s[i] && s[i] <= 'f') { | ||
n = n * base + (10 + chr(s[i]) - chra); | ||
n = (n * base + (10 + chr(s[i]) - chra)) >>> 0; | ||
} else if ('A' <= s[i] && s[i] <= 'F') { | ||
n = n * base + (10 + chr(s[i]) - chrA); | ||
n = (n * base + (10 + chr(s[i]) - chrA)) >>> 0; | ||
} else { | ||
@@ -84,4 +104,4 @@ break; | ||
} | ||
if (n > 0xFF) { | ||
throw new Error('byte overflow'); | ||
if (n > 0xFFFFFFFF) { | ||
throw new Error('too large'); | ||
} | ||
@@ -88,0 +108,0 @@ i++; |
@@ -5,3 +5,3 @@ { | ||
"description": "Parse and lookup IP network blocks", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"homepage": "https://github.com/rs/node-netmask", | ||
@@ -8,0 +8,0 @@ "bugs": "https://github.com/rs/node-netmask/issues", |
@@ -9,21 +9,23 @@ Netmask | ||
var Netmask = require('netmask').Netmask | ||
```js | ||
var Netmask = require('netmask').Netmask | ||
var block = new Netmask('10.0.0.0/12'); | ||
block.base; // 10.0.0.0 | ||
block.mask; // 255.240.0.0 | ||
block.bitmask; // 12 | ||
block.hostmask; // 0.15.255.255 | ||
block.broadcast; // 10.15.255.255 | ||
block.size; // 1048576 | ||
block.first; // 10.0.0.1 | ||
block.last; // 10.15.255.254 | ||
var block = new Netmask('10.0.0.0/12'); | ||
block.base; // 10.0.0.0 | ||
block.mask; // 255.240.0.0 | ||
block.bitmask; // 12 | ||
block.hostmask; // 0.15.255.255 | ||
block.broadcast; // 10.15.255.255 | ||
block.size; // 1048576 | ||
block.first; // 10.0.0.1 | ||
block.last; // 10.15.255.254 | ||
block.contains('10.0.8.10'); // true | ||
block.contains('10.8.0.10'); // true | ||
block.contains('192.168.1.20'); // false | ||
block.contains('10.0.8.10'); // true | ||
block.contains('10.8.0.10'); // true | ||
block.contains('192.168.1.20'); // false | ||
block.forEach(function(ip, long, index)); | ||
block.forEach(function(ip, long, index)); | ||
block.next() // Netmask('10.16.0.0/12') | ||
block.next() // Netmask('10.16.0.0/12') | ||
``` | ||
@@ -35,11 +37,12 @@ Constructing | ||
'216.240.32.0/24' // The preferred form. | ||
'216.240.32.0/255.255.255.0' | ||
'216.240.32.0', '255.255.255.0' | ||
'216.240.32.0', 0xffffff00 | ||
'216.240.32.4' // A /32 block. | ||
'0330.0360.040.04' // Octal form | ||
'0xd8.0xf0.0x20.0x4' // Hex form | ||
``` | ||
'216.240.32.0/24' // The preferred form. | ||
'216.240.32.0/255.255.255.0' | ||
'216.240.32.0', '255.255.255.0' | ||
'216.240.32.0', 0xffffff00 | ||
'216.240.32.4' // A /32 block. | ||
'0330.0360.040.04' // Octal form | ||
'0xd8.0xf0.0x20.0x4' // Hex form | ||
``` | ||
API | ||
@@ -46,0 +49,0 @@ --- |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
32496
10
281
86