cidr-block 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/cjs/index.d.cts +62 -0
- package/dist/cjs/ipv4-address.cjs +10 -13
- package/dist/cjs/ipv4-address.cjs.map +1 -1
- package/dist/cjs/ipv4-cidr.cjs +75 -39
- package/dist/cjs/ipv4-cidr.cjs.map +1 -1
- package/dist/cjs/ipv4-errors.cjs +3 -6
- package/dist/cjs/ipv4-errors.cjs.map +1 -1
- package/dist/cjs/ipv6-address.cjs +20 -23
- package/dist/cjs/ipv6-address.cjs.map +1 -1
- package/dist/cjs/ipv6-cidr.cjs +82 -40
- package/dist/cjs/ipv6-cidr.cjs.map +1 -1
- package/dist/cjs/ipv6-errors.cjs +3 -6
- package/dist/cjs/ipv6-errors.cjs.map +1 -1
- package/dist/esm/ipv4-address.js +10 -13
- package/dist/esm/ipv4-address.js.map +1 -1
- package/dist/esm/ipv4-cidr.d.ts +31 -0
- package/dist/esm/ipv4-cidr.d.ts.map +1 -1
- package/dist/esm/ipv4-cidr.js +75 -39
- package/dist/esm/ipv4-cidr.js.map +1 -1
- package/dist/esm/ipv4-errors.js +3 -6
- package/dist/esm/ipv4-errors.js.map +1 -1
- package/dist/esm/ipv6-address.js +20 -23
- package/dist/esm/ipv6-address.js.map +1 -1
- package/dist/esm/ipv6-cidr.d.ts +31 -0
- package/dist/esm/ipv6-cidr.d.ts.map +1 -1
- package/dist/esm/ipv6-cidr.js +82 -40
- package/dist/esm/ipv6-cidr.js.map +1 -1
- package/dist/esm/ipv6-errors.js +3 -6
- package/dist/esm/ipv6-errors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -186,6 +186,11 @@ cidr.range(); // 24
|
|
|
186
186
|
cidr.netmask().toString(); // "255.255.255.0"
|
|
187
187
|
cidr.addressCount(); // 256
|
|
188
188
|
cidr.rangeParts(); // [Ipv4Address, 24]
|
|
189
|
+
|
|
190
|
+
// Calculate network address from CIDR with host bits
|
|
191
|
+
const hostCidr = ipv4.cidr('192.168.1.5/24');
|
|
192
|
+
hostCidr.network().toString(); // "192.168.1.0"
|
|
193
|
+
hostCidr.networkCIDR().toString(); // "192.168.1.0/24"
|
|
189
194
|
```
|
|
190
195
|
|
|
191
196
|
#### Usable Addresses
|
|
@@ -440,6 +445,11 @@ cidr.baseAddress().toString(); // "2001:db8::"
|
|
|
440
445
|
cidr.range(); // 32
|
|
441
446
|
cidr.netmask().toString(); // "ffff:ffff::"
|
|
442
447
|
cidr.addressCount(); // 79228162514264337593543950336n (BigInt)
|
|
448
|
+
|
|
449
|
+
// Calculate network address from CIDR with host bits
|
|
450
|
+
const hostCidr = ipv6.cidr('2001:db8::1234/32');
|
|
451
|
+
hostCidr.network().toString(); // "2001:db8::"
|
|
452
|
+
hostCidr.networkCIDR().toString(); // "2001:db8::/32"
|
|
443
453
|
```
|
|
444
454
|
|
|
445
455
|
#### Usable Addresses
|
|
@@ -693,3 +703,29 @@ function getUsableIPs(cidrStr: string): string[] {
|
|
|
693
703
|
const usable = getUsableIPs('192.168.1.0/29');
|
|
694
704
|
// ['192.168.1.1', '192.168.1.2', '192.168.1.3', '192.168.1.4', '192.168.1.5', '192.168.1.6']
|
|
695
705
|
```
|
|
706
|
+
|
|
707
|
+
### Normalizing CIDR Blocks
|
|
708
|
+
|
|
709
|
+
```typescript
|
|
710
|
+
import { ipv4, ipv6 } from 'cidr-block';
|
|
711
|
+
|
|
712
|
+
// Normalize IPv4 CIDR by removing host bits
|
|
713
|
+
function normalizeIPv4CIDR(cidrStr: string): string {
|
|
714
|
+
const cidr = ipv4.cidr(cidrStr);
|
|
715
|
+
return cidr.networkCIDR().toString();
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
normalizeIPv4CIDR('192.168.1.5/24'); // "192.168.1.0/24"
|
|
719
|
+
normalizeIPv4CIDR('10.5.10.20/8'); // "10.0.0.0/8"
|
|
720
|
+
normalizeIPv4CIDR('172.16.50.100/12'); // "172.16.0.0/12"
|
|
721
|
+
|
|
722
|
+
// Normalize IPv6 CIDR by removing host bits
|
|
723
|
+
function normalizeIPv6CIDR(cidrStr: string): string {
|
|
724
|
+
const cidr = ipv6.cidr(cidrStr);
|
|
725
|
+
return cidr.networkCIDR().toString();
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
normalizeIPv6CIDR('2001:db8::1234/32'); // "2001:db8::/32"
|
|
729
|
+
normalizeIPv6CIDR('2001:db8:1:2:3:4:5:6/64'); // "2001:db8:1:2::/64"
|
|
730
|
+
normalizeIPv6CIDR('2001:db8:abcd:ef01::/48'); // "2001:db8:abcd::/48"
|
|
731
|
+
```
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -386,6 +386,7 @@ declare class Ipv4Address {
|
|
|
386
386
|
* cidr.baseAddress().toString(); // "192.168.0.0"
|
|
387
387
|
* cidr.range(); // 24
|
|
388
388
|
* cidr.netmask().toString(); // "255.255.255.0"
|
|
389
|
+
* cidr.network().toString(); // "192.168.0.0"
|
|
389
390
|
* cidr.addressCount(); // 256
|
|
390
391
|
* ```
|
|
391
392
|
*
|
|
@@ -490,6 +491,36 @@ declare class Ipv4Cidr {
|
|
|
490
491
|
* @returns The netmask as an Ipv4Address.
|
|
491
492
|
*/
|
|
492
493
|
netmask(): Ipv4Address;
|
|
494
|
+
/**
|
|
495
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
496
|
+
*
|
|
497
|
+
* @example
|
|
498
|
+
* ```ts
|
|
499
|
+
* import { ipv4 } from 'cidr-block';
|
|
500
|
+
*
|
|
501
|
+
* ipv4.cidr("192.168.1.5/24").network().toString(); // "192.168.1.0"
|
|
502
|
+
* ipv4.cidr("10.5.10.20/8").network().toString(); // "10.0.0.0"
|
|
503
|
+
* ipv4.cidr("172.16.5.1/16").network().toString(); // "172.16.0.0"
|
|
504
|
+
* ```
|
|
505
|
+
*
|
|
506
|
+
* @returns The network address as an Ipv4Address.
|
|
507
|
+
*/
|
|
508
|
+
network(): Ipv4Address;
|
|
509
|
+
/**
|
|
510
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
511
|
+
*
|
|
512
|
+
* @example
|
|
513
|
+
* ```ts
|
|
514
|
+
* import { ipv4 } from 'cidr-block';
|
|
515
|
+
*
|
|
516
|
+
* ipv4.cidr("192.168.1.5/24").networkCIDR().toString(); // "192.168.1.0/24"
|
|
517
|
+
* ipv4.cidr("10.5.10.20/8").networkCIDR().toString(); // "10.0.0.0/8"
|
|
518
|
+
* ipv4.cidr("172.16.5.1/16").networkCIDR().toString(); // "172.16.0.0/16"
|
|
519
|
+
* ```
|
|
520
|
+
*
|
|
521
|
+
* @returns The network CIDR as an Ipv4Cidr.
|
|
522
|
+
*/
|
|
523
|
+
networkCIDR(): Ipv4Cidr;
|
|
493
524
|
/**
|
|
494
525
|
* Returns the string representation of the IPv4 CIDR.
|
|
495
526
|
*
|
|
@@ -1394,6 +1425,7 @@ declare class Ipv6Address {
|
|
|
1394
1425
|
* cidr.baseAddress().toString(); // "2001:db8::"
|
|
1395
1426
|
* cidr.range(); // 32
|
|
1396
1427
|
* cidr.netmask().toString(); // "ffff:ffff::"
|
|
1428
|
+
* cidr.network().toString(); // "2001:db8::"
|
|
1397
1429
|
* cidr.addressCount(); // 79228162514264337593543950336n
|
|
1398
1430
|
* ```
|
|
1399
1431
|
*
|
|
@@ -1483,6 +1515,36 @@ declare class Ipv6Cidr {
|
|
|
1483
1515
|
* @returns The netmask as an Ipv6Address.
|
|
1484
1516
|
*/
|
|
1485
1517
|
netmask(): Ipv6Address;
|
|
1518
|
+
/**
|
|
1519
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
1520
|
+
*
|
|
1521
|
+
* @example
|
|
1522
|
+
* ```ts
|
|
1523
|
+
* import { ipv6 } from 'cidr-block';
|
|
1524
|
+
*
|
|
1525
|
+
* ipv6.cidr("2001:db8::1234/32").network().toString(); // "2001:db8::"
|
|
1526
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").network().toString(); // "2001:db8:1:2::"
|
|
1527
|
+
* ipv6.cidr("2001:db8:abcd::/48").network().toString(); // "2001:db8:abcd::"
|
|
1528
|
+
* ```
|
|
1529
|
+
*
|
|
1530
|
+
* @returns The network address as an Ipv6Address.
|
|
1531
|
+
*/
|
|
1532
|
+
network(): Ipv6Address;
|
|
1533
|
+
/**
|
|
1534
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
1535
|
+
*
|
|
1536
|
+
* @example
|
|
1537
|
+
* ```ts
|
|
1538
|
+
* import { ipv6 } from 'cidr-block';
|
|
1539
|
+
*
|
|
1540
|
+
* ipv6.cidr("2001:db8::1234/32").networkCIDR().toString(); // "2001:db8::/32"
|
|
1541
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").networkCIDR().toString(); // "2001:db8:1:2::/64"
|
|
1542
|
+
* ipv6.cidr("2001:db8:abcd::/48").networkCIDR().toString(); // "2001:db8:abcd::/48"
|
|
1543
|
+
* ```
|
|
1544
|
+
*
|
|
1545
|
+
* @returns The network CIDR as an Ipv6Cidr.
|
|
1546
|
+
*/
|
|
1547
|
+
networkCIDR(): Ipv6Cidr;
|
|
1486
1548
|
/**
|
|
1487
1549
|
* Returns the string representation of the IPv6 CIDR.
|
|
1488
1550
|
*
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6_js = require('/Users/brandon/cidr-block/node_modules/tslib/tslib.es6.js');
|
|
4
3
|
var ipv4 = require('./ipv4.cjs');
|
|
5
4
|
var ipv4Errors = require('./ipv4-errors.cjs');
|
|
6
5
|
|
|
7
|
-
var _Ipv4Address_octets;
|
|
8
6
|
/**
|
|
9
7
|
* Represents an IPv4 address with utility methods for manipulation and comparison.
|
|
10
8
|
*
|
|
@@ -62,12 +60,12 @@ var _Ipv4Address_octets;
|
|
|
62
60
|
* ```
|
|
63
61
|
*/
|
|
64
62
|
class Ipv4Address {
|
|
63
|
+
#octets;
|
|
65
64
|
constructor(ip) {
|
|
66
|
-
_Ipv4Address_octets.set(this, void 0);
|
|
67
65
|
if (!ipv4.ipv4.isValidAddress(ip)) {
|
|
68
66
|
throw new ipv4Errors.InvalidIpv4AddressError(ip);
|
|
69
67
|
}
|
|
70
|
-
|
|
68
|
+
this.#octets = ipv4.ipv4.parseOctets(ip);
|
|
71
69
|
}
|
|
72
70
|
/**
|
|
73
71
|
* Gets the octets of the IPv4 address.
|
|
@@ -83,7 +81,7 @@ class Ipv4Address {
|
|
|
83
81
|
* @returns An array of four numbers representing the octets of the IPv4 address.
|
|
84
82
|
*/
|
|
85
83
|
octets() {
|
|
86
|
-
return
|
|
84
|
+
return this.#octets;
|
|
87
85
|
}
|
|
88
86
|
/**
|
|
89
87
|
* Returns the string representation of the IPv4 address.
|
|
@@ -99,7 +97,7 @@ class Ipv4Address {
|
|
|
99
97
|
* @returns The IPv4 address as a string in dotted-decimal notation (example: "192.187.0.1").
|
|
100
98
|
*/
|
|
101
99
|
toString() {
|
|
102
|
-
return
|
|
100
|
+
return this.#octets.join('.');
|
|
103
101
|
}
|
|
104
102
|
/**
|
|
105
103
|
* Returns the binary string representation of the IPv4 address.
|
|
@@ -115,7 +113,7 @@ class Ipv4Address {
|
|
|
115
113
|
* @returns The IPv4 address as a binary string in dotted-decimal notation (example: "11000000.10111011.00000000.00000001").
|
|
116
114
|
*/
|
|
117
115
|
toBinaryString() {
|
|
118
|
-
return
|
|
116
|
+
return this.#octets.map(octet => octet.toString(2).padStart(8, '0')).join('.');
|
|
119
117
|
}
|
|
120
118
|
/**
|
|
121
119
|
* Converts the IPv4 address to its numeric representation.
|
|
@@ -131,7 +129,7 @@ class Ipv4Address {
|
|
|
131
129
|
* @returns The IPv4 address as a number.
|
|
132
130
|
*/
|
|
133
131
|
toNumber() {
|
|
134
|
-
return (((
|
|
132
|
+
return (((this.#octets[0] << 24) | (this.#octets[1] << 16) | (this.#octets[2] << 8) | this.#octets[3]) >>> 0);
|
|
135
133
|
}
|
|
136
134
|
/**
|
|
137
135
|
* Checks if there is a next sequential IPv4 address.
|
|
@@ -338,7 +336,7 @@ class Ipv4Address {
|
|
|
338
336
|
* @returns true if the IPv4 address is a loopback address (example: 127.0.0.1 is true)
|
|
339
337
|
*/
|
|
340
338
|
isLoopbackAddress() {
|
|
341
|
-
return
|
|
339
|
+
return this.#octets[0] === 127;
|
|
342
340
|
}
|
|
343
341
|
/**
|
|
344
342
|
* Checks if the IPv4 address is a private address.
|
|
@@ -361,7 +359,7 @@ class Ipv4Address {
|
|
|
361
359
|
* @returns true if the IPv4 address is in any of the private address ranges.
|
|
362
360
|
*/
|
|
363
361
|
isPrivateAddress() {
|
|
364
|
-
const [o1, o2] =
|
|
362
|
+
const [o1, o2] = this.#octets;
|
|
365
363
|
return o1 === 10 || (o1 === 172 && o2 >= 16 && o2 <= 31) || (o1 === 192 && o2 === 168);
|
|
366
364
|
}
|
|
367
365
|
/**
|
|
@@ -379,7 +377,7 @@ class Ipv4Address {
|
|
|
379
377
|
* @returns true if the IPv4 address is a local-link address.
|
|
380
378
|
*/
|
|
381
379
|
isLocalLinkAddress() {
|
|
382
|
-
const [o1, o2] =
|
|
380
|
+
const [o1, o2] = this.#octets;
|
|
383
381
|
return o1 === 169 && o2 === 254;
|
|
384
382
|
}
|
|
385
383
|
/**
|
|
@@ -397,11 +395,10 @@ class Ipv4Address {
|
|
|
397
395
|
* @returns true if the IPv4 address is a multicast address.
|
|
398
396
|
*/
|
|
399
397
|
isMulticastAddress() {
|
|
400
|
-
const firstOctet =
|
|
398
|
+
const firstOctet = this.#octets[0];
|
|
401
399
|
return firstOctet >= 224 && firstOctet <= 239;
|
|
402
400
|
}
|
|
403
401
|
}
|
|
404
|
-
_Ipv4Address_octets = new WeakMap();
|
|
405
402
|
|
|
406
403
|
exports.Ipv4Address = Ipv4Address;
|
|
407
404
|
//# sourceMappingURL=ipv4-address.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv4-address.cjs","sources":["../../../src/ipv4-address.ts"],"sourcesContent":[null],"names":["ipv4","InvalidIpv4AddressError"
|
|
1
|
+
{"version":3,"file":"ipv4-address.cjs","sources":["../../../src/ipv4-address.ts"],"sourcesContent":[null],"names":["ipv4","InvalidIpv4AddressError"],"mappings":";;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;MACU,WAAW,CAAA;AACtB,IAAA,OAAO;AAEP,IAAA,WAAA,CAAY,EAAsB,EAAA;QAChC,IAAI,CAACA,SAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAIC,kCAAuB,CAAC,EAAE,CAAC;QACvC;QACA,IAAI,CAAC,OAAO,GAAGD,SAAI,CAAC,WAAW,CAAC,EAAE,CAAC;IACrC;AAEA;;;;;;;;;;;;AAYG;IACI,MAAM,GAAA;QACX,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA;;;;;;;;;;;;AAYG;IACI,QAAQ,GAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAsB;IACpD;AAEA;;;;;;;;;;;;AAYG;IACI,cAAc,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAChF;AAEA;;;;;;;;;;;;AAYG;IACI,QAAQ,GAAA;QACb,QACE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAExG;AAEA;;;;;;;;;;;;;AAaG;IACI,cAAc,GAAA;QACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAGA,SAAI,CAAC,QAAQ;IACxC;AAEA;;;;;;;;;;;;;;;AAeG;IACI,WAAW,GAAA;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AACvC,QAAA,IAAI,WAAW,GAAGA,SAAI,CAAC,QAAQ,EAAE;AAC/B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC;IACrC;AAEA;;;;;;;;;;;;;AAaG;IACI,kBAAkB,GAAA;QACvB,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAGA,SAAI,CAAC,QAAQ;IACxC;AAEA;;;;;;;;;;;;;;;AAeG;IACI,eAAe,GAAA;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AACvC,QAAA,IAAI,WAAW,GAAGA,SAAI,CAAC,QAAQ,EAAE;AAC/B,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC;IACrC;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,MAAM,CAAC,YAA8C,EAAA;AAC1D,QAAA,IAAI,YAAY,YAAY,WAAW,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,YAAY,CAAC,QAAQ,EAAE;QACpD;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACrE;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,aAAa,CAAC,YAA8C,EAAA;AACjE,QAAA,IAAI,YAAY,YAAY,WAAW,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE;QAClD;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACnE;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,oBAAoB,CAAC,YAA8C,EAAA;AACxE,QAAA,IAAI,YAAY,YAAY,WAAW,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,YAAY,CAAC,QAAQ,EAAE;QACnD;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACpE;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,UAAU,CAAC,YAA8C,EAAA;AAC9D,QAAA,IAAI,YAAY,YAAY,WAAW,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE;QAClD;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACnE;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,iBAAiB,CAAC,YAA8C,EAAA;AACrE,QAAA,IAAI,YAAY,YAAY,WAAW,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,YAAY,CAAC,QAAQ,EAAE;QACnD;AACA,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACpE;AAEA;;;;;;;;;;;;;AAaG;IACI,iBAAiB,GAAA;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;IAChC;AAEA;;;;;;;;;;;;;;;;;;;AAmBG;IACI,gBAAgB,GAAA;QACrB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO;QAE7B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;IACxF;AAEA;;;;;;;;;;;;;AAaG;IACI,kBAAkB,GAAA;QACvB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO;AAE7B,QAAA,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;IACjC;AAEA;;;;;;;;;;;;;AAaG;IACI,kBAAkB,GAAA;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,OAAO,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG;IAC/C;AACD;;;;"}
|
package/dist/cjs/ipv4-cidr.cjs
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6_js = require('/Users/brandon/cidr-block/node_modules/tslib/tslib.es6.js');
|
|
4
3
|
var ipv4 = require('./ipv4.cjs');
|
|
5
4
|
var ipv4Address = require('./ipv4-address.cjs');
|
|
6
5
|
var ipv4Errors = require('./ipv4-errors.cjs');
|
|
7
6
|
|
|
8
|
-
var _Ipv4Cidr_address, _Ipv4Cidr_range;
|
|
9
7
|
/**
|
|
10
8
|
* Represents an IPv4 CIDR block with utility methods for subnet operations.
|
|
11
9
|
*
|
|
@@ -30,6 +28,7 @@ var _Ipv4Cidr_address, _Ipv4Cidr_range;
|
|
|
30
28
|
* cidr.baseAddress().toString(); // "192.168.0.0"
|
|
31
29
|
* cidr.range(); // 24
|
|
32
30
|
* cidr.netmask().toString(); // "255.255.255.0"
|
|
31
|
+
* cidr.network().toString(); // "192.168.0.0"
|
|
33
32
|
* cidr.addressCount(); // 256
|
|
34
33
|
* ```
|
|
35
34
|
*
|
|
@@ -89,24 +88,24 @@ var _Ipv4Cidr_address, _Ipv4Cidr_range;
|
|
|
89
88
|
* ```
|
|
90
89
|
*/
|
|
91
90
|
class Ipv4Cidr {
|
|
91
|
+
#address;
|
|
92
|
+
#range;
|
|
92
93
|
constructor(address) {
|
|
93
|
-
_Ipv4Cidr_address.set(this, void 0);
|
|
94
|
-
_Ipv4Cidr_range.set(this, void 0);
|
|
95
94
|
if (!ipv4.ipv4.isValidCIDR(address)) {
|
|
96
95
|
throw new ipv4Errors.InvalidIpv4CidrError(address);
|
|
97
96
|
}
|
|
98
97
|
if (typeof address === 'string') {
|
|
99
98
|
const [ip, rangeStr] = address.split('/');
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
this.#address = new ipv4Address.Ipv4Address(ip);
|
|
100
|
+
this.#range = parseInt(rangeStr, 10);
|
|
102
101
|
}
|
|
103
102
|
else if (Array.isArray(address)) {
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
this.#address = new ipv4Address.Ipv4Address(address[0]);
|
|
104
|
+
this.#range = address[1];
|
|
106
105
|
}
|
|
107
106
|
else if (typeof address === 'object' && address !== null) {
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
this.#address = new ipv4Address.Ipv4Address(address.address);
|
|
108
|
+
this.#range = address.range;
|
|
110
109
|
}
|
|
111
110
|
else {
|
|
112
111
|
throw new ipv4Errors.InvalidIpv4CidrError(address);
|
|
@@ -126,7 +125,7 @@ class Ipv4Cidr {
|
|
|
126
125
|
* @returns The base IPv4 address.
|
|
127
126
|
*/
|
|
128
127
|
baseAddress() {
|
|
129
|
-
return
|
|
128
|
+
return this.#address;
|
|
130
129
|
}
|
|
131
130
|
/**
|
|
132
131
|
* Gets the CIDR range.
|
|
@@ -142,7 +141,7 @@ class Ipv4Cidr {
|
|
|
142
141
|
* @returns The CIDR range as a number.
|
|
143
142
|
*/
|
|
144
143
|
range() {
|
|
145
|
-
return
|
|
144
|
+
return this.#range;
|
|
146
145
|
}
|
|
147
146
|
/**
|
|
148
147
|
* Calculates the netmask for the CIDR range.
|
|
@@ -159,9 +158,47 @@ class Ipv4Cidr {
|
|
|
159
158
|
* @returns The netmask as an Ipv4Address.
|
|
160
159
|
*/
|
|
161
160
|
netmask() {
|
|
162
|
-
const maskNumber =
|
|
161
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
163
162
|
return new ipv4Address.Ipv4Address(maskNumber);
|
|
164
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* import { ipv4 } from 'cidr-block';
|
|
170
|
+
*
|
|
171
|
+
* ipv4.cidr("192.168.1.5/24").network().toString(); // "192.168.1.0"
|
|
172
|
+
* ipv4.cidr("10.5.10.20/8").network().toString(); // "10.0.0.0"
|
|
173
|
+
* ipv4.cidr("172.16.5.1/16").network().toString(); // "172.16.0.0"
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @returns The network address as an Ipv4Address.
|
|
177
|
+
*/
|
|
178
|
+
network() {
|
|
179
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
180
|
+
const networkNumber = (this.#address.toNumber() & maskNumber) >>> 0;
|
|
181
|
+
return new ipv4Address.Ipv4Address(networkNumber);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```ts
|
|
188
|
+
* import { ipv4 } from 'cidr-block';
|
|
189
|
+
*
|
|
190
|
+
* ipv4.cidr("192.168.1.5/24").networkCIDR().toString(); // "192.168.1.0/24"
|
|
191
|
+
* ipv4.cidr("10.5.10.20/8").networkCIDR().toString(); // "10.0.0.0/8"
|
|
192
|
+
* ipv4.cidr("172.16.5.1/16").networkCIDR().toString(); // "172.16.0.0/16"
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @returns The network CIDR as an Ipv4Cidr.
|
|
196
|
+
*/
|
|
197
|
+
networkCIDR() {
|
|
198
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
199
|
+
const networkNumber = (this.#address.toNumber() & maskNumber) >>> 0;
|
|
200
|
+
return new Ipv4Cidr([networkNumber, this.#range]);
|
|
201
|
+
}
|
|
165
202
|
/**
|
|
166
203
|
* Returns the string representation of the IPv4 CIDR.
|
|
167
204
|
*
|
|
@@ -176,7 +213,7 @@ class Ipv4Cidr {
|
|
|
176
213
|
* @returns The IPv4 CIDR as a string (example: "192.0.0.0/24").
|
|
177
214
|
*/
|
|
178
215
|
toString() {
|
|
179
|
-
return `${
|
|
216
|
+
return `${this.#address.toString()}/${this.#range}`;
|
|
180
217
|
}
|
|
181
218
|
/**
|
|
182
219
|
* Gets the address and range parts of the IPv4 CIDR.
|
|
@@ -193,7 +230,7 @@ class Ipv4Cidr {
|
|
|
193
230
|
* @returns A tuple containing the IPv4 address and the CIDR range.
|
|
194
231
|
*/
|
|
195
232
|
rangeParts() {
|
|
196
|
-
return [
|
|
233
|
+
return [this.#address, this.#range];
|
|
197
234
|
}
|
|
198
235
|
/**
|
|
199
236
|
* Calculates the total number of addresses in the CIDR range.
|
|
@@ -210,7 +247,7 @@ class Ipv4Cidr {
|
|
|
210
247
|
* @returns The total number of addresses in the CIDR range.
|
|
211
248
|
*/
|
|
212
249
|
addressCount() {
|
|
213
|
-
return 2 ** (32 -
|
|
250
|
+
return 2 ** (32 - this.#range);
|
|
214
251
|
}
|
|
215
252
|
/**
|
|
216
253
|
* Generates all IPv4 addresses within the CIDR range.
|
|
@@ -229,7 +266,7 @@ class Ipv4Cidr {
|
|
|
229
266
|
* @returns A generator that yields each IPv4 address in the CIDR range.
|
|
230
267
|
*/
|
|
231
268
|
*addresses() {
|
|
232
|
-
const baseNumber =
|
|
269
|
+
const baseNumber = this.#address.toNumber();
|
|
233
270
|
const count = this.addressCount();
|
|
234
271
|
for (let i = 0; i < count; i++) {
|
|
235
272
|
yield new ipv4Address.Ipv4Address(baseNumber + i);
|
|
@@ -253,7 +290,7 @@ class Ipv4Cidr {
|
|
|
253
290
|
*/
|
|
254
291
|
equals(other) {
|
|
255
292
|
const otherCidr = other instanceof Ipv4Cidr ? other : new Ipv4Cidr(other);
|
|
256
|
-
return
|
|
293
|
+
return this.#address.equals(otherCidr.#address) && this.#range === otherCidr.#range;
|
|
257
294
|
}
|
|
258
295
|
/**
|
|
259
296
|
* Checks if there is a next sequential CIDR.
|
|
@@ -269,7 +306,7 @@ class Ipv4Cidr {
|
|
|
269
306
|
* @returns true if there is a next CIDR.
|
|
270
307
|
*/
|
|
271
308
|
hasNextCIDR() {
|
|
272
|
-
const nextBaseAddressNumber =
|
|
309
|
+
const nextBaseAddressNumber = this.#address.toNumber() + this.addressCount();
|
|
273
310
|
return nextBaseAddressNumber <= ipv4.ipv4.MAX_SIZE;
|
|
274
311
|
}
|
|
275
312
|
/**
|
|
@@ -289,11 +326,11 @@ class Ipv4Cidr {
|
|
|
289
326
|
* @returns The next CIDR, or undefined if there is no next CIDR.
|
|
290
327
|
*/
|
|
291
328
|
nextCIDR() {
|
|
292
|
-
const nextBaseAddressNumber =
|
|
329
|
+
const nextBaseAddressNumber = this.#address.toNumber() + this.addressCount();
|
|
293
330
|
if (nextBaseAddressNumber > ipv4.ipv4.MAX_SIZE) {
|
|
294
331
|
return undefined;
|
|
295
332
|
}
|
|
296
|
-
return new Ipv4Cidr([nextBaseAddressNumber,
|
|
333
|
+
return new Ipv4Cidr([nextBaseAddressNumber, this.#range]);
|
|
297
334
|
}
|
|
298
335
|
/**
|
|
299
336
|
* Checks if there is a previous sequential CIDR.
|
|
@@ -309,7 +346,7 @@ class Ipv4Cidr {
|
|
|
309
346
|
* @returns true if there is a previous CIDR.
|
|
310
347
|
*/
|
|
311
348
|
hasPreviousCIDR() {
|
|
312
|
-
return
|
|
349
|
+
return this.#address.toNumber() >= this.addressCount();
|
|
313
350
|
}
|
|
314
351
|
/**
|
|
315
352
|
* Gets the previous sequential CIDR.
|
|
@@ -328,11 +365,11 @@ class Ipv4Cidr {
|
|
|
328
365
|
* @returns The previous CIDR, or undefined if there is no previous CIDR.
|
|
329
366
|
*/
|
|
330
367
|
previousCIDR() {
|
|
331
|
-
const prevBaseAddressNumber =
|
|
368
|
+
const prevBaseAddressNumber = this.#address.toNumber() - this.addressCount();
|
|
332
369
|
if (prevBaseAddressNumber < ipv4.ipv4.MIN_SIZE) {
|
|
333
370
|
return undefined;
|
|
334
371
|
}
|
|
335
|
-
return new Ipv4Cidr([prevBaseAddressNumber,
|
|
372
|
+
return new Ipv4Cidr([prevBaseAddressNumber, this.#range]);
|
|
336
373
|
}
|
|
337
374
|
/**
|
|
338
375
|
* Gets the first usable address in the CIDR range.
|
|
@@ -351,10 +388,10 @@ class Ipv4Cidr {
|
|
|
351
388
|
* @returns The first usable IPv4 address, or undefined if the range is /32.
|
|
352
389
|
*/
|
|
353
390
|
getFirstUsableAddress() {
|
|
354
|
-
if (
|
|
391
|
+
if (this.#range === 32) {
|
|
355
392
|
return undefined;
|
|
356
393
|
}
|
|
357
|
-
const firstUsableNumber =
|
|
394
|
+
const firstUsableNumber = this.#address.toNumber() + 1;
|
|
358
395
|
return new ipv4Address.Ipv4Address(firstUsableNumber);
|
|
359
396
|
}
|
|
360
397
|
/**
|
|
@@ -374,10 +411,10 @@ class Ipv4Cidr {
|
|
|
374
411
|
* @returns The last usable IPv4 address, or undefined if the range is /32.
|
|
375
412
|
*/
|
|
376
413
|
getLastUsableAddress() {
|
|
377
|
-
if (
|
|
414
|
+
if (this.#range === 32) {
|
|
378
415
|
return undefined;
|
|
379
416
|
}
|
|
380
|
-
const lastUsableNumber =
|
|
417
|
+
const lastUsableNumber = this.#address.toNumber() + this.addressCount() - 2;
|
|
381
418
|
return new ipv4Address.Ipv4Address(lastUsableNumber);
|
|
382
419
|
}
|
|
383
420
|
/**
|
|
@@ -397,7 +434,7 @@ class Ipv4Cidr {
|
|
|
397
434
|
*/
|
|
398
435
|
includes(ip) {
|
|
399
436
|
const ipNumber = ip.toNumber();
|
|
400
|
-
const baseNumber =
|
|
437
|
+
const baseNumber = this.#address.toNumber();
|
|
401
438
|
const count = this.addressCount();
|
|
402
439
|
return ipNumber >= baseNumber && ipNumber < baseNumber + count;
|
|
403
440
|
}
|
|
@@ -419,9 +456,9 @@ class Ipv4Cidr {
|
|
|
419
456
|
*/
|
|
420
457
|
overlaps(other) {
|
|
421
458
|
const otherCidr = other instanceof Ipv4Cidr ? other : new Ipv4Cidr(other);
|
|
422
|
-
const thisBase =
|
|
459
|
+
const thisBase = this.#address.toNumber();
|
|
423
460
|
const thisCount = this.addressCount();
|
|
424
|
-
const otherBase =
|
|
461
|
+
const otherBase = otherCidr.#address.toNumber();
|
|
425
462
|
const otherCount = otherCidr.addressCount();
|
|
426
463
|
return thisBase < otherBase + otherCount && otherBase < thisBase + thisCount;
|
|
427
464
|
}
|
|
@@ -443,12 +480,12 @@ class Ipv4Cidr {
|
|
|
443
480
|
* @throws InvalidIpv4CidrRangeError if the new range is less than the current range or greater than the maximum range.
|
|
444
481
|
*/
|
|
445
482
|
subnet(newRange) {
|
|
446
|
-
if (newRange <
|
|
447
|
-
throw new ipv4Errors.InvalidIpv4CidrRangeError(`New range ${newRange} must be between current range ${
|
|
483
|
+
if (newRange < this.#range || newRange > ipv4.ipv4.MAX_RANGE) {
|
|
484
|
+
throw new ipv4Errors.InvalidIpv4CidrRangeError(`New range ${newRange} must be between current range ${this.#range} and ${ipv4.ipv4.MAX_RANGE}`);
|
|
448
485
|
}
|
|
449
486
|
const subranges = [];
|
|
450
|
-
const totalSubnets = 2 ** (newRange -
|
|
451
|
-
const baseNumber =
|
|
487
|
+
const totalSubnets = 2 ** (newRange - this.#range);
|
|
488
|
+
const baseNumber = this.#address.toNumber();
|
|
452
489
|
const subnetSize = 2 ** (32 - newRange);
|
|
453
490
|
for (let i = 0; i < totalSubnets; i++) {
|
|
454
491
|
const subnetBaseNumber = baseNumber + i * subnetSize;
|
|
@@ -476,11 +513,11 @@ class Ipv4Cidr {
|
|
|
476
513
|
*/
|
|
477
514
|
subnetBy(ranges) {
|
|
478
515
|
const subranges = [];
|
|
479
|
-
let currentBase =
|
|
516
|
+
let currentBase = this.#address.toNumber();
|
|
480
517
|
const endAddress = currentBase + this.addressCount();
|
|
481
518
|
for (const range of ranges) {
|
|
482
|
-
if (range <
|
|
483
|
-
throw new ipv4Errors.InvalidIpv4CidrRangeError(`Range ${range} must be between current range ${
|
|
519
|
+
if (range < this.#range || range > ipv4.ipv4.MAX_RANGE) {
|
|
520
|
+
throw new ipv4Errors.InvalidIpv4CidrRangeError(`Range ${range} must be between current range ${this.#range} and ${ipv4.ipv4.MAX_RANGE}`);
|
|
484
521
|
}
|
|
485
522
|
const subnetSize = 2 ** (32 - range);
|
|
486
523
|
if (currentBase + subnetSize > endAddress) {
|
|
@@ -492,7 +529,6 @@ class Ipv4Cidr {
|
|
|
492
529
|
return subranges;
|
|
493
530
|
}
|
|
494
531
|
}
|
|
495
|
-
_Ipv4Cidr_address = new WeakMap(), _Ipv4Cidr_range = new WeakMap();
|
|
496
532
|
|
|
497
533
|
exports.Ipv4Cidr = Ipv4Cidr;
|
|
498
534
|
//# sourceMappingURL=ipv4-cidr.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv4-cidr.cjs","sources":["../../../src/ipv4-cidr.ts"],"sourcesContent":[null],"names":["ipv4","InvalidIpv4CidrError","
|
|
1
|
+
{"version":3,"file":"ipv4-cidr.cjs","sources":["../../../src/ipv4-cidr.ts"],"sourcesContent":[null],"names":["ipv4","InvalidIpv4CidrError","Ipv4Address","InvalidIpv4CidrRangeError"],"mappings":"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"}
|
package/dist/cjs/ipv4-errors.cjs
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
class InvalidIpv4AddressError extends Error {
|
|
4
|
+
name = 'InvalidIpv4AddressError';
|
|
4
5
|
constructor(invalidAddress) {
|
|
5
6
|
super(`${invalidAddress} is not a valid IPv4 address`);
|
|
6
|
-
this.name = 'InvalidIpv4AddressError';
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
class InvalidIpv4CidrError extends Error {
|
|
10
|
+
name = 'InvalidIpv4CidrError';
|
|
10
11
|
constructor(invalidCidr) {
|
|
11
12
|
super(`${invalidCidr} is not a valid IPv4 CIDR range`);
|
|
12
|
-
this.name = 'InvalidIpv4CidrError';
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
class InvalidIpv4CidrRangeError extends Error {
|
|
16
|
-
|
|
17
|
-
super(...arguments);
|
|
18
|
-
this.name = 'InvalidIpv4RangeError';
|
|
19
|
-
}
|
|
16
|
+
name = 'InvalidIpv4RangeError';
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
exports.InvalidIpv4AddressError = InvalidIpv4AddressError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv4-errors.cjs","sources":["../../../src/ipv4-errors.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAM,MAAO,uBAAwB,SAAQ,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"ipv4-errors.cjs","sources":["../../../src/ipv4-errors.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAM,MAAO,uBAAwB,SAAQ,KAAK,CAAA;IACvC,IAAI,GAAG,yBAAyB;AAEzC,IAAA,WAAA,CAAY,cAAuB,EAAA;AACjC,QAAA,KAAK,CAAC,CAAA,EAAG,cAAc,CAAA,4BAAA,CAA8B,CAAC;IACxD;AACD;AAEK,MAAO,oBAAqB,SAAQ,KAAK,CAAA;IACpC,IAAI,GAAG,sBAAsB;AAEtC,IAAA,WAAA,CAAY,WAAoB,EAAA;AAC9B,QAAA,KAAK,CAAC,CAAA,EAAG,WAAW,CAAA,+BAAA,CAAiC,CAAC;IACxD;AACD;AAEK,MAAO,yBAA0B,SAAQ,KAAK,CAAA;IACzC,IAAI,GAAG,uBAAuB;AACxC;;;;;;"}
|