cidr-block 2.1.1 → 2.3.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 +39 -1
- package/dist/cjs/index.d.cts +92 -0
- package/dist/cjs/ipv4-cidr.cjs +58 -0
- package/dist/cjs/ipv4-cidr.cjs.map +1 -1
- package/dist/cjs/ipv6-cidr.cjs +73 -0
- package/dist/cjs/ipv6-cidr.cjs.map +1 -1
- package/dist/esm/ipv4-cidr.d.ts +46 -0
- package/dist/esm/ipv4-cidr.d.ts.map +1 -1
- package/dist/esm/ipv4-cidr.js +58 -0
- package/dist/esm/ipv4-cidr.js.map +1 -1
- package/dist/esm/ipv6-cidr.d.ts +46 -0
- package/dist/esm/ipv6-cidr.d.ts.map +1 -1
- package/dist/esm/ipv6-cidr.js +73 -0
- package/dist/esm/ipv6-cidr.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npm install cidr-block
|
|
|
11
11
|
- Full IPv4 and IPv6 address support
|
|
12
12
|
- CIDR block creation and manipulation
|
|
13
13
|
- Address validation and parsing
|
|
14
|
-
- Network calculations (netmask, address count, usable addresses)
|
|
14
|
+
- Network calculations (netmask, hostmask, address count, usable addresses)
|
|
15
15
|
- Subnetting operations
|
|
16
16
|
- Address type detection (private, loopback, multicast, etc.)
|
|
17
17
|
- Full TypeScript support with comprehensive type definitions
|
|
@@ -184,8 +184,14 @@ cidr.toString(); // "192.168.0.0/24"
|
|
|
184
184
|
cidr.baseAddress().toString(); // "192.168.0.0"
|
|
185
185
|
cidr.range(); // 24
|
|
186
186
|
cidr.netmask().toString(); // "255.255.255.0"
|
|
187
|
+
cidr.hostmask().toString(); // "0.0.0.255"
|
|
187
188
|
cidr.addressCount(); // 256
|
|
188
189
|
cidr.rangeParts(); // [Ipv4Address, 24]
|
|
190
|
+
|
|
191
|
+
// Calculate network address from CIDR with host bits
|
|
192
|
+
const hostCidr = ipv4.cidr('192.168.1.5/24');
|
|
193
|
+
hostCidr.network().toString(); // "192.168.1.0"
|
|
194
|
+
hostCidr.networkCIDR().toString(); // "192.168.1.0/24"
|
|
189
195
|
```
|
|
190
196
|
|
|
191
197
|
#### Usable Addresses
|
|
@@ -439,7 +445,13 @@ cidr.toString(); // "2001:db8::/32"
|
|
|
439
445
|
cidr.baseAddress().toString(); // "2001:db8::"
|
|
440
446
|
cidr.range(); // 32
|
|
441
447
|
cidr.netmask().toString(); // "ffff:ffff::"
|
|
448
|
+
cidr.hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff:ffff"
|
|
442
449
|
cidr.addressCount(); // 79228162514264337593543950336n (BigInt)
|
|
450
|
+
|
|
451
|
+
// Calculate network address from CIDR with host bits
|
|
452
|
+
const hostCidr = ipv6.cidr('2001:db8::1234/32');
|
|
453
|
+
hostCidr.network().toString(); // "2001:db8::"
|
|
454
|
+
hostCidr.networkCIDR().toString(); // "2001:db8::/32"
|
|
443
455
|
```
|
|
444
456
|
|
|
445
457
|
#### Usable Addresses
|
|
@@ -693,3 +705,29 @@ function getUsableIPs(cidrStr: string): string[] {
|
|
|
693
705
|
const usable = getUsableIPs('192.168.1.0/29');
|
|
694
706
|
// ['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
707
|
```
|
|
708
|
+
|
|
709
|
+
### Normalizing CIDR Blocks
|
|
710
|
+
|
|
711
|
+
```typescript
|
|
712
|
+
import { ipv4, ipv6 } from 'cidr-block';
|
|
713
|
+
|
|
714
|
+
// Normalize IPv4 CIDR by removing host bits
|
|
715
|
+
function normalizeIPv4CIDR(cidrStr: string): string {
|
|
716
|
+
const cidr = ipv4.cidr(cidrStr);
|
|
717
|
+
return cidr.networkCIDR().toString();
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
normalizeIPv4CIDR('192.168.1.5/24'); // "192.168.1.0/24"
|
|
721
|
+
normalizeIPv4CIDR('10.5.10.20/8'); // "10.0.0.0/8"
|
|
722
|
+
normalizeIPv4CIDR('172.16.50.100/12'); // "172.16.0.0/12"
|
|
723
|
+
|
|
724
|
+
// Normalize IPv6 CIDR by removing host bits
|
|
725
|
+
function normalizeIPv6CIDR(cidrStr: string): string {
|
|
726
|
+
const cidr = ipv6.cidr(cidrStr);
|
|
727
|
+
return cidr.networkCIDR().toString();
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
normalizeIPv6CIDR('2001:db8::1234/32'); // "2001:db8::/32"
|
|
731
|
+
normalizeIPv6CIDR('2001:db8:1:2:3:4:5:6/64'); // "2001:db8:1:2::/64"
|
|
732
|
+
normalizeIPv6CIDR('2001:db8:abcd:ef01::/48'); // "2001:db8:abcd::/48"
|
|
733
|
+
```
|
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,51 @@ declare class Ipv4Cidr {
|
|
|
490
491
|
* @returns The netmask as an Ipv4Address.
|
|
491
492
|
*/
|
|
492
493
|
netmask(): Ipv4Address;
|
|
494
|
+
/**
|
|
495
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
496
|
+
*
|
|
497
|
+
* @example
|
|
498
|
+
* ```ts
|
|
499
|
+
* import { ipv4 } from 'cidr-block';
|
|
500
|
+
*
|
|
501
|
+
* ipv4.cidr("192.168.0.0/24").hostmask().toString(); // "0.0.0.255"
|
|
502
|
+
* ipv4.cidr("10.0.0.0/8").hostmask().toString(); // "0.255.255.255"
|
|
503
|
+
* ipv4.cidr("172.16.0.0/16").hostmask().toString(); // "0.0.255.255"
|
|
504
|
+
* ```
|
|
505
|
+
*
|
|
506
|
+
* @returns The hostmask as an Ipv4Address.
|
|
507
|
+
*/
|
|
508
|
+
hostmask(): Ipv4Address;
|
|
509
|
+
/**
|
|
510
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
511
|
+
*
|
|
512
|
+
* @example
|
|
513
|
+
* ```ts
|
|
514
|
+
* import { ipv4 } from 'cidr-block';
|
|
515
|
+
*
|
|
516
|
+
* ipv4.cidr("192.168.1.5/24").network().toString(); // "192.168.1.0"
|
|
517
|
+
* ipv4.cidr("10.5.10.20/8").network().toString(); // "10.0.0.0"
|
|
518
|
+
* ipv4.cidr("172.16.5.1/16").network().toString(); // "172.16.0.0"
|
|
519
|
+
* ```
|
|
520
|
+
*
|
|
521
|
+
* @returns The network address as an Ipv4Address.
|
|
522
|
+
*/
|
|
523
|
+
network(): Ipv4Address;
|
|
524
|
+
/**
|
|
525
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
526
|
+
*
|
|
527
|
+
* @example
|
|
528
|
+
* ```ts
|
|
529
|
+
* import { ipv4 } from 'cidr-block';
|
|
530
|
+
*
|
|
531
|
+
* ipv4.cidr("192.168.1.5/24").networkCIDR().toString(); // "192.168.1.0/24"
|
|
532
|
+
* ipv4.cidr("10.5.10.20/8").networkCIDR().toString(); // "10.0.0.0/8"
|
|
533
|
+
* ipv4.cidr("172.16.5.1/16").networkCIDR().toString(); // "172.16.0.0/16"
|
|
534
|
+
* ```
|
|
535
|
+
*
|
|
536
|
+
* @returns The network CIDR as an Ipv4Cidr.
|
|
537
|
+
*/
|
|
538
|
+
networkCIDR(): Ipv4Cidr;
|
|
493
539
|
/**
|
|
494
540
|
* Returns the string representation of the IPv4 CIDR.
|
|
495
541
|
*
|
|
@@ -1394,6 +1440,7 @@ declare class Ipv6Address {
|
|
|
1394
1440
|
* cidr.baseAddress().toString(); // "2001:db8::"
|
|
1395
1441
|
* cidr.range(); // 32
|
|
1396
1442
|
* cidr.netmask().toString(); // "ffff:ffff::"
|
|
1443
|
+
* cidr.network().toString(); // "2001:db8::"
|
|
1397
1444
|
* cidr.addressCount(); // 79228162514264337593543950336n
|
|
1398
1445
|
* ```
|
|
1399
1446
|
*
|
|
@@ -1483,6 +1530,51 @@ declare class Ipv6Cidr {
|
|
|
1483
1530
|
* @returns The netmask as an Ipv6Address.
|
|
1484
1531
|
*/
|
|
1485
1532
|
netmask(): Ipv6Address;
|
|
1533
|
+
/**
|
|
1534
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
1535
|
+
*
|
|
1536
|
+
* @example
|
|
1537
|
+
* ```ts
|
|
1538
|
+
* import { ipv6 } from 'cidr-block';
|
|
1539
|
+
*
|
|
1540
|
+
* ipv6.cidr("2001:db8::/32").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff:ffff"
|
|
1541
|
+
* ipv6.cidr("2001:db8::/64").hostmask().toString(); // "::ffff:ffff:ffff:ffff"
|
|
1542
|
+
* ipv6.cidr("2001:db8::/48").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff"
|
|
1543
|
+
* ```
|
|
1544
|
+
*
|
|
1545
|
+
* @returns The hostmask as an Ipv6Address.
|
|
1546
|
+
*/
|
|
1547
|
+
hostmask(): Ipv6Address;
|
|
1548
|
+
/**
|
|
1549
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
1550
|
+
*
|
|
1551
|
+
* @example
|
|
1552
|
+
* ```ts
|
|
1553
|
+
* import { ipv6 } from 'cidr-block';
|
|
1554
|
+
*
|
|
1555
|
+
* ipv6.cidr("2001:db8::1234/32").network().toString(); // "2001:db8::"
|
|
1556
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").network().toString(); // "2001:db8:1:2::"
|
|
1557
|
+
* ipv6.cidr("2001:db8:abcd::/48").network().toString(); // "2001:db8:abcd::"
|
|
1558
|
+
* ```
|
|
1559
|
+
*
|
|
1560
|
+
* @returns The network address as an Ipv6Address.
|
|
1561
|
+
*/
|
|
1562
|
+
network(): Ipv6Address;
|
|
1563
|
+
/**
|
|
1564
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
1565
|
+
*
|
|
1566
|
+
* @example
|
|
1567
|
+
* ```ts
|
|
1568
|
+
* import { ipv6 } from 'cidr-block';
|
|
1569
|
+
*
|
|
1570
|
+
* ipv6.cidr("2001:db8::1234/32").networkCIDR().toString(); // "2001:db8::/32"
|
|
1571
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").networkCIDR().toString(); // "2001:db8:1:2::/64"
|
|
1572
|
+
* ipv6.cidr("2001:db8:abcd::/48").networkCIDR().toString(); // "2001:db8:abcd::/48"
|
|
1573
|
+
* ```
|
|
1574
|
+
*
|
|
1575
|
+
* @returns The network CIDR as an Ipv6Cidr.
|
|
1576
|
+
*/
|
|
1577
|
+
networkCIDR(): Ipv6Cidr;
|
|
1486
1578
|
/**
|
|
1487
1579
|
* Returns the string representation of the IPv6 CIDR.
|
|
1488
1580
|
*
|
package/dist/cjs/ipv4-cidr.cjs
CHANGED
|
@@ -28,6 +28,7 @@ var ipv4Errors = require('./ipv4-errors.cjs');
|
|
|
28
28
|
* cidr.baseAddress().toString(); // "192.168.0.0"
|
|
29
29
|
* cidr.range(); // 24
|
|
30
30
|
* cidr.netmask().toString(); // "255.255.255.0"
|
|
31
|
+
* cidr.network().toString(); // "192.168.0.0"
|
|
31
32
|
* cidr.addressCount(); // 256
|
|
32
33
|
* ```
|
|
33
34
|
*
|
|
@@ -160,6 +161,63 @@ class Ipv4Cidr {
|
|
|
160
161
|
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
161
162
|
return new ipv4Address.Ipv4Address(maskNumber);
|
|
162
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* import { ipv4 } from 'cidr-block';
|
|
170
|
+
*
|
|
171
|
+
* ipv4.cidr("192.168.0.0/24").hostmask().toString(); // "0.0.0.255"
|
|
172
|
+
* ipv4.cidr("10.0.0.0/8").hostmask().toString(); // "0.255.255.255"
|
|
173
|
+
* ipv4.cidr("172.16.0.0/16").hostmask().toString(); // "0.0.255.255"
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @returns The hostmask as an Ipv4Address.
|
|
177
|
+
*/
|
|
178
|
+
hostmask() {
|
|
179
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
180
|
+
const hostmaskNumber = ~maskNumber >>> 0;
|
|
181
|
+
return new ipv4Address.Ipv4Address(hostmaskNumber);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```ts
|
|
188
|
+
* import { ipv4 } from 'cidr-block';
|
|
189
|
+
*
|
|
190
|
+
* ipv4.cidr("192.168.1.5/24").network().toString(); // "192.168.1.0"
|
|
191
|
+
* ipv4.cidr("10.5.10.20/8").network().toString(); // "10.0.0.0"
|
|
192
|
+
* ipv4.cidr("172.16.5.1/16").network().toString(); // "172.16.0.0"
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @returns The network address as an Ipv4Address.
|
|
196
|
+
*/
|
|
197
|
+
network() {
|
|
198
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
199
|
+
const networkNumber = (this.#address.toNumber() & maskNumber) >>> 0;
|
|
200
|
+
return new ipv4Address.Ipv4Address(networkNumber);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```ts
|
|
207
|
+
* import { ipv4 } from 'cidr-block';
|
|
208
|
+
*
|
|
209
|
+
* ipv4.cidr("192.168.1.5/24").networkCIDR().toString(); // "192.168.1.0/24"
|
|
210
|
+
* ipv4.cidr("10.5.10.20/8").networkCIDR().toString(); // "10.0.0.0/8"
|
|
211
|
+
* ipv4.cidr("172.16.5.1/16").networkCIDR().toString(); // "172.16.0.0/16"
|
|
212
|
+
* ```
|
|
213
|
+
*
|
|
214
|
+
* @returns The network CIDR as an Ipv4Cidr.
|
|
215
|
+
*/
|
|
216
|
+
networkCIDR() {
|
|
217
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
218
|
+
const networkNumber = (this.#address.toNumber() & maskNumber) >>> 0;
|
|
219
|
+
return new Ipv4Cidr([networkNumber, this.#range]);
|
|
220
|
+
}
|
|
163
221
|
/**
|
|
164
222
|
* Returns the string representation of the IPv4 CIDR.
|
|
165
223
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv4-cidr.cjs","sources":["../../../src/ipv4-cidr.ts"],"sourcesContent":[null],"names":["ipv4","InvalidIpv4CidrError","Ipv4Address","InvalidIpv4CidrRangeError"],"mappings":";;;;;;AAKA
|
|
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/ipv6-cidr.cjs
CHANGED
|
@@ -28,6 +28,7 @@ var ipv6Errors = require('./ipv6-errors.cjs');
|
|
|
28
28
|
* cidr.baseAddress().toString(); // "2001:db8::"
|
|
29
29
|
* cidr.range(); // 32
|
|
30
30
|
* cidr.netmask().toString(); // "ffff:ffff::"
|
|
31
|
+
* cidr.network().toString(); // "2001:db8::"
|
|
31
32
|
* cidr.addressCount(); // 79228162514264337593543950336n
|
|
32
33
|
* ```
|
|
33
34
|
*
|
|
@@ -149,6 +150,78 @@ class Ipv6Cidr {
|
|
|
149
150
|
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
150
151
|
return new ipv6Address.Ipv6Address(mask);
|
|
151
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* import { ipv6 } from 'cidr-block';
|
|
159
|
+
*
|
|
160
|
+
* ipv6.cidr("2001:db8::/32").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff:ffff"
|
|
161
|
+
* ipv6.cidr("2001:db8::/64").hostmask().toString(); // "::ffff:ffff:ffff:ffff"
|
|
162
|
+
* ipv6.cidr("2001:db8::/48").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff"
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @returns The hostmask as an Ipv6Address.
|
|
166
|
+
*/
|
|
167
|
+
hostmask() {
|
|
168
|
+
if (this.#range === 0) {
|
|
169
|
+
// For /0, hostmask is all 1s
|
|
170
|
+
return new ipv6Address.Ipv6Address((1n << 128n) - 1n);
|
|
171
|
+
}
|
|
172
|
+
if (this.#range === 128) {
|
|
173
|
+
// For /128, hostmask is all 0s
|
|
174
|
+
return new ipv6Address.Ipv6Address(0n);
|
|
175
|
+
}
|
|
176
|
+
// Hostmask is the bitwise NOT of the netmask
|
|
177
|
+
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
178
|
+
const hostmask = ((1n << 128n) - 1n) ^ mask;
|
|
179
|
+
return new ipv6Address.Ipv6Address(hostmask);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```ts
|
|
186
|
+
* import { ipv6 } from 'cidr-block';
|
|
187
|
+
*
|
|
188
|
+
* ipv6.cidr("2001:db8::1234/32").network().toString(); // "2001:db8::"
|
|
189
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").network().toString(); // "2001:db8:1:2::"
|
|
190
|
+
* ipv6.cidr("2001:db8:abcd::/48").network().toString(); // "2001:db8:abcd::"
|
|
191
|
+
* ```
|
|
192
|
+
*
|
|
193
|
+
* @returns The network address as an Ipv6Address.
|
|
194
|
+
*/
|
|
195
|
+
network() {
|
|
196
|
+
if (this.#range === 0) {
|
|
197
|
+
return new ipv6Address.Ipv6Address(0n);
|
|
198
|
+
}
|
|
199
|
+
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
200
|
+
const networkNumber = this.#address.toBigInt() & mask;
|
|
201
|
+
return new ipv6Address.Ipv6Address(networkNumber);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts
|
|
208
|
+
* import { ipv6 } from 'cidr-block';
|
|
209
|
+
*
|
|
210
|
+
* ipv6.cidr("2001:db8::1234/32").networkCIDR().toString(); // "2001:db8::/32"
|
|
211
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").networkCIDR().toString(); // "2001:db8:1:2::/64"
|
|
212
|
+
* ipv6.cidr("2001:db8:abcd::/48").networkCIDR().toString(); // "2001:db8:abcd::/48"
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* @returns The network CIDR as an Ipv6Cidr.
|
|
216
|
+
*/
|
|
217
|
+
networkCIDR() {
|
|
218
|
+
if (this.#range === 0) {
|
|
219
|
+
return new Ipv6Cidr([0n, 0]);
|
|
220
|
+
}
|
|
221
|
+
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
222
|
+
const networkNumber = this.#address.toBigInt() & mask;
|
|
223
|
+
return new Ipv6Cidr([networkNumber, this.#range]);
|
|
224
|
+
}
|
|
152
225
|
/**
|
|
153
226
|
* Returns the string representation of the IPv6 CIDR.
|
|
154
227
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv6-cidr.cjs","sources":["../../../src/ipv6-cidr.ts"],"sourcesContent":[null],"names":["ipv6","InvalidIpv6CidrError","Ipv6Address","InvalidIpv6CidrRangeError"],"mappings":";;;;;;AAKA
|
|
1
|
+
{"version":3,"file":"ipv6-cidr.cjs","sources":["../../../src/ipv6-cidr.ts"],"sourcesContent":[null],"names":["ipv6","InvalidIpv6CidrError","Ipv6Address","InvalidIpv6CidrRangeError"],"mappings":"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"}
|
package/dist/esm/ipv4-cidr.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ import type { Ipv4CidrLiteral, Ipv4CidrString } from './ipv4-types';
|
|
|
24
24
|
* cidr.baseAddress().toString(); // "192.168.0.0"
|
|
25
25
|
* cidr.range(); // 24
|
|
26
26
|
* cidr.netmask().toString(); // "255.255.255.0"
|
|
27
|
+
* cidr.network().toString(); // "192.168.0.0"
|
|
27
28
|
* cidr.addressCount(); // 256
|
|
28
29
|
* ```
|
|
29
30
|
*
|
|
@@ -128,6 +129,51 @@ export declare class Ipv4Cidr {
|
|
|
128
129
|
* @returns The netmask as an Ipv4Address.
|
|
129
130
|
*/
|
|
130
131
|
netmask(): Ipv4Address;
|
|
132
|
+
/**
|
|
133
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* import { ipv4 } from 'cidr-block';
|
|
138
|
+
*
|
|
139
|
+
* ipv4.cidr("192.168.0.0/24").hostmask().toString(); // "0.0.0.255"
|
|
140
|
+
* ipv4.cidr("10.0.0.0/8").hostmask().toString(); // "0.255.255.255"
|
|
141
|
+
* ipv4.cidr("172.16.0.0/16").hostmask().toString(); // "0.0.255.255"
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @returns The hostmask as an Ipv4Address.
|
|
145
|
+
*/
|
|
146
|
+
hostmask(): Ipv4Address;
|
|
147
|
+
/**
|
|
148
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* import { ipv4 } from 'cidr-block';
|
|
153
|
+
*
|
|
154
|
+
* ipv4.cidr("192.168.1.5/24").network().toString(); // "192.168.1.0"
|
|
155
|
+
* ipv4.cidr("10.5.10.20/8").network().toString(); // "10.0.0.0"
|
|
156
|
+
* ipv4.cidr("172.16.5.1/16").network().toString(); // "172.16.0.0"
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* @returns The network address as an Ipv4Address.
|
|
160
|
+
*/
|
|
161
|
+
network(): Ipv4Address;
|
|
162
|
+
/**
|
|
163
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```ts
|
|
167
|
+
* import { ipv4 } from 'cidr-block';
|
|
168
|
+
*
|
|
169
|
+
* ipv4.cidr("192.168.1.5/24").networkCIDR().toString(); // "192.168.1.0/24"
|
|
170
|
+
* ipv4.cidr("10.5.10.20/8").networkCIDR().toString(); // "10.0.0.0/8"
|
|
171
|
+
* ipv4.cidr("172.16.5.1/16").networkCIDR().toString(); // "172.16.0.0/16"
|
|
172
|
+
* ```
|
|
173
|
+
*
|
|
174
|
+
* @returns The network CIDR as an Ipv4Cidr.
|
|
175
|
+
*/
|
|
176
|
+
networkCIDR(): Ipv4Cidr;
|
|
131
177
|
/**
|
|
132
178
|
* Returns the string representation of the IPv4 CIDR.
|
|
133
179
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv4-cidr.d.ts","sourceRoot":"","sources":["../../src/ipv4-cidr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAEnE
|
|
1
|
+
{"version":3,"file":"ipv4-cidr.d.ts","sourceRoot":"","sources":["../../src/ipv4-cidr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,qBAAa,QAAQ;;gBAIP,OAAO,EAAE,eAAe;IAmBpC;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,WAAW;IAIjC;;;;;;;;;;;;OAYG;IACI,KAAK,IAAI,MAAM;IAItB;;;;;;;;;;;;;OAaG;IACI,OAAO,IAAI,WAAW;IAK7B;;;;;;;;;;;;;OAaG;IACI,QAAQ,IAAI,WAAW;IAM9B;;;;;;;;;;;;;OAaG;IACI,OAAO,IAAI,WAAW;IAM7B;;;;;;;;;;;;;OAaG;IACI,WAAW,IAAI,QAAQ;IAM9B;;;;;;;;;;;;OAYG;IACI,QAAQ,IAAI,cAAc;IAIjC;;;;;;;;;;;;;OAaG;IACI,UAAU,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IAI1C;;;;;;;;;;;;;OAaG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;;;;;;;;;;;OAeG;IACK,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC;IAQ3C;;;;;;;;;;;;;;;OAeG;IACI,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO;IAKzD;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,OAAO;IAK7B;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,IAAI,QAAQ,GAAG,SAAS;IAQvC;;;;;;;;;;;;OAYG;IACI,eAAe,IAAI,OAAO;IAIjC;;;;;;;;;;;;;;;OAeG;IACI,YAAY,IAAI,QAAQ,GAAG,SAAS;IAQ3C;;;;;;;;;;;;;;;OAeG;IACI,qBAAqB,IAAI,WAAW,GAAG,SAAS;IAQvD;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,IAAI,WAAW,GAAG,SAAS;IAQtD;;;;;;;;;;;;;;OAcG;IACI,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO;IAOzC;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO;IAS3D;;;;;;;;;;;;;;;;OAgBG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAoB3C;;;;;;;;;;;;;;;;;OAiBG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;CA0B9C"}
|
package/dist/esm/ipv4-cidr.js
CHANGED
|
@@ -26,6 +26,7 @@ import { InvalidIpv4CidrError, InvalidIpv4CidrRangeError } from './ipv4-errors.j
|
|
|
26
26
|
* cidr.baseAddress().toString(); // "192.168.0.0"
|
|
27
27
|
* cidr.range(); // 24
|
|
28
28
|
* cidr.netmask().toString(); // "255.255.255.0"
|
|
29
|
+
* cidr.network().toString(); // "192.168.0.0"
|
|
29
30
|
* cidr.addressCount(); // 256
|
|
30
31
|
* ```
|
|
31
32
|
*
|
|
@@ -158,6 +159,63 @@ class Ipv4Cidr {
|
|
|
158
159
|
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
159
160
|
return new Ipv4Address(maskNumber);
|
|
160
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```ts
|
|
167
|
+
* import { ipv4 } from 'cidr-block';
|
|
168
|
+
*
|
|
169
|
+
* ipv4.cidr("192.168.0.0/24").hostmask().toString(); // "0.0.0.255"
|
|
170
|
+
* ipv4.cidr("10.0.0.0/8").hostmask().toString(); // "0.255.255.255"
|
|
171
|
+
* ipv4.cidr("172.16.0.0/16").hostmask().toString(); // "0.0.255.255"
|
|
172
|
+
* ```
|
|
173
|
+
*
|
|
174
|
+
* @returns The hostmask as an Ipv4Address.
|
|
175
|
+
*/
|
|
176
|
+
hostmask() {
|
|
177
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
178
|
+
const hostmaskNumber = ~maskNumber >>> 0;
|
|
179
|
+
return new Ipv4Address(hostmaskNumber);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```ts
|
|
186
|
+
* import { ipv4 } from 'cidr-block';
|
|
187
|
+
*
|
|
188
|
+
* ipv4.cidr("192.168.1.5/24").network().toString(); // "192.168.1.0"
|
|
189
|
+
* ipv4.cidr("10.5.10.20/8").network().toString(); // "10.0.0.0"
|
|
190
|
+
* ipv4.cidr("172.16.5.1/16").network().toString(); // "172.16.0.0"
|
|
191
|
+
* ```
|
|
192
|
+
*
|
|
193
|
+
* @returns The network address as an Ipv4Address.
|
|
194
|
+
*/
|
|
195
|
+
network() {
|
|
196
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
197
|
+
const networkNumber = (this.#address.toNumber() & maskNumber) >>> 0;
|
|
198
|
+
return new Ipv4Address(networkNumber);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```ts
|
|
205
|
+
* import { ipv4 } from 'cidr-block';
|
|
206
|
+
*
|
|
207
|
+
* ipv4.cidr("192.168.1.5/24").networkCIDR().toString(); // "192.168.1.0/24"
|
|
208
|
+
* ipv4.cidr("10.5.10.20/8").networkCIDR().toString(); // "10.0.0.0/8"
|
|
209
|
+
* ipv4.cidr("172.16.5.1/16").networkCIDR().toString(); // "172.16.0.0/16"
|
|
210
|
+
* ```
|
|
211
|
+
*
|
|
212
|
+
* @returns The network CIDR as an Ipv4Cidr.
|
|
213
|
+
*/
|
|
214
|
+
networkCIDR() {
|
|
215
|
+
const maskNumber = this.#range === 0 ? 0 : (-1 << (32 - this.#range)) >>> 0;
|
|
216
|
+
const networkNumber = (this.#address.toNumber() & maskNumber) >>> 0;
|
|
217
|
+
return new Ipv4Cidr([networkNumber, this.#range]);
|
|
218
|
+
}
|
|
161
219
|
/**
|
|
162
220
|
* Returns the string representation of the IPv4 CIDR.
|
|
163
221
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv4-cidr.js","sources":["../../../src/ipv4-cidr.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA
|
|
1
|
+
{"version":3,"file":"ipv4-cidr.js","sources":["../../../src/ipv4-cidr.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/ipv6-cidr.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ import type { Ipv6CidrLiteral } from './ipv6-types';
|
|
|
24
24
|
* cidr.baseAddress().toString(); // "2001:db8::"
|
|
25
25
|
* cidr.range(); // 32
|
|
26
26
|
* cidr.netmask().toString(); // "ffff:ffff::"
|
|
27
|
+
* cidr.network().toString(); // "2001:db8::"
|
|
27
28
|
* cidr.addressCount(); // 79228162514264337593543950336n
|
|
28
29
|
* ```
|
|
29
30
|
*
|
|
@@ -113,6 +114,51 @@ export declare class Ipv6Cidr {
|
|
|
113
114
|
* @returns The netmask as an Ipv6Address.
|
|
114
115
|
*/
|
|
115
116
|
netmask(): Ipv6Address;
|
|
117
|
+
/**
|
|
118
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* import { ipv6 } from 'cidr-block';
|
|
123
|
+
*
|
|
124
|
+
* ipv6.cidr("2001:db8::/32").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff:ffff"
|
|
125
|
+
* ipv6.cidr("2001:db8::/64").hostmask().toString(); // "::ffff:ffff:ffff:ffff"
|
|
126
|
+
* ipv6.cidr("2001:db8::/48").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff"
|
|
127
|
+
* ```
|
|
128
|
+
*
|
|
129
|
+
* @returns The hostmask as an Ipv6Address.
|
|
130
|
+
*/
|
|
131
|
+
hostmask(): Ipv6Address;
|
|
132
|
+
/**
|
|
133
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* import { ipv6 } from 'cidr-block';
|
|
138
|
+
*
|
|
139
|
+
* ipv6.cidr("2001:db8::1234/32").network().toString(); // "2001:db8::"
|
|
140
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").network().toString(); // "2001:db8:1:2::"
|
|
141
|
+
* ipv6.cidr("2001:db8:abcd::/48").network().toString(); // "2001:db8:abcd::"
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @returns The network address as an Ipv6Address.
|
|
145
|
+
*/
|
|
146
|
+
network(): Ipv6Address;
|
|
147
|
+
/**
|
|
148
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```ts
|
|
152
|
+
* import { ipv6 } from 'cidr-block';
|
|
153
|
+
*
|
|
154
|
+
* ipv6.cidr("2001:db8::1234/32").networkCIDR().toString(); // "2001:db8::/32"
|
|
155
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").networkCIDR().toString(); // "2001:db8:1:2::/64"
|
|
156
|
+
* ipv6.cidr("2001:db8:abcd::/48").networkCIDR().toString(); // "2001:db8:abcd::/48"
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* @returns The network CIDR as an Ipv6Cidr.
|
|
160
|
+
*/
|
|
161
|
+
networkCIDR(): Ipv6Cidr;
|
|
116
162
|
/**
|
|
117
163
|
* Returns the string representation of the IPv6 CIDR.
|
|
118
164
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv6-cidr.d.ts","sourceRoot":"","sources":["../../src/ipv6-cidr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD
|
|
1
|
+
{"version":3,"file":"ipv6-cidr.d.ts","sourceRoot":"","sources":["../../src/ipv6-cidr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,qBAAa,QAAQ;;gBAIP,OAAO,EAAE,eAAe;IAmBpC;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,WAAW;IAIjC;;;;;;;;;;;;OAYG;IACI,KAAK,IAAI,MAAM;IAItB;;;;;;;;;;;;;OAaG;IACI,OAAO,IAAI,WAAW;IAS7B;;;;;;;;;;;;;OAaG;IACI,QAAQ,IAAI,WAAW;IAe9B;;;;;;;;;;;;;OAaG;IACI,OAAO,IAAI,WAAW;IAS7B;;;;;;;;;;;;;OAaG;IACI,WAAW,IAAI,QAAQ;IAS9B;;;;;;;;;;;;OAYG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;;;;;;;;;;OAaG;IACI,UAAU,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IAI1C;;;;;;;;;;;;;OAaG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;;;;;;;;;;;;;;OAkBG;IACK,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;IAUzD;;;;;;;;;;;;;;;OAeG;IACI,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO;IAKzD;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,OAAO;IAK7B;;;;;;;;;;;;OAYG;IACI,QAAQ,IAAI,QAAQ,GAAG,SAAS;IAQvC;;;;;;;;;;;;OAYG;IACI,eAAe,IAAI,OAAO;IAIjC;;;;;;;;;;;;;;;OAeG;IACI,YAAY,IAAI,QAAQ,GAAG,SAAS;IAQ3C;;;;;;;;;;;;;;;OAeG;IACI,qBAAqB,IAAI,WAAW,GAAG,SAAS;IAQvD;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,IAAI,WAAW,GAAG,SAAS;IAQtD;;;;;;;;;;;;;;OAcG;IACI,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO;IAOzC;;;;;;;;;;;;;;;OAeG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO;IAS3D;;;;;;;;;;;;;;;;OAgBG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAoB3C;;;;;;;;;;;;;;;;;OAiBG;IACI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;CA0B9C"}
|
package/dist/esm/ipv6-cidr.js
CHANGED
|
@@ -26,6 +26,7 @@ import { InvalidIpv6CidrError, InvalidIpv6CidrRangeError } from './ipv6-errors.j
|
|
|
26
26
|
* cidr.baseAddress().toString(); // "2001:db8::"
|
|
27
27
|
* cidr.range(); // 32
|
|
28
28
|
* cidr.netmask().toString(); // "ffff:ffff::"
|
|
29
|
+
* cidr.network().toString(); // "2001:db8::"
|
|
29
30
|
* cidr.addressCount(); // 79228162514264337593543950336n
|
|
30
31
|
* ```
|
|
31
32
|
*
|
|
@@ -147,6 +148,78 @@ class Ipv6Cidr {
|
|
|
147
148
|
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
148
149
|
return new Ipv6Address(mask);
|
|
149
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Calculates the hostmask (inverse of the netmask) for the CIDR range.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```ts
|
|
156
|
+
* import { ipv6 } from 'cidr-block';
|
|
157
|
+
*
|
|
158
|
+
* ipv6.cidr("2001:db8::/32").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff:ffff"
|
|
159
|
+
* ipv6.cidr("2001:db8::/64").hostmask().toString(); // "::ffff:ffff:ffff:ffff"
|
|
160
|
+
* ipv6.cidr("2001:db8::/48").hostmask().toString(); // "::ffff:ffff:ffff:ffff:ffff"
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @returns The hostmask as an Ipv6Address.
|
|
164
|
+
*/
|
|
165
|
+
hostmask() {
|
|
166
|
+
if (this.#range === 0) {
|
|
167
|
+
// For /0, hostmask is all 1s
|
|
168
|
+
return new Ipv6Address((1n << 128n) - 1n);
|
|
169
|
+
}
|
|
170
|
+
if (this.#range === 128) {
|
|
171
|
+
// For /128, hostmask is all 0s
|
|
172
|
+
return new Ipv6Address(0n);
|
|
173
|
+
}
|
|
174
|
+
// Hostmask is the bitwise NOT of the netmask
|
|
175
|
+
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
176
|
+
const hostmask = ((1n << 128n) - 1n) ^ mask;
|
|
177
|
+
return new Ipv6Address(hostmask);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Calculates the network address by applying the netmask to the base address.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* import { ipv6 } from 'cidr-block';
|
|
185
|
+
*
|
|
186
|
+
* ipv6.cidr("2001:db8::1234/32").network().toString(); // "2001:db8::"
|
|
187
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").network().toString(); // "2001:db8:1:2::"
|
|
188
|
+
* ipv6.cidr("2001:db8:abcd::/48").network().toString(); // "2001:db8:abcd::"
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* @returns The network address as an Ipv6Address.
|
|
192
|
+
*/
|
|
193
|
+
network() {
|
|
194
|
+
if (this.#range === 0) {
|
|
195
|
+
return new Ipv6Address(0n);
|
|
196
|
+
}
|
|
197
|
+
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
198
|
+
const networkNumber = this.#address.toBigInt() & mask;
|
|
199
|
+
return new Ipv6Address(networkNumber);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Calculates the network CIDR by applying the netmask to the base address and returning a CIDR with the network address.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```ts
|
|
206
|
+
* import { ipv6 } from 'cidr-block';
|
|
207
|
+
*
|
|
208
|
+
* ipv6.cidr("2001:db8::1234/32").networkCIDR().toString(); // "2001:db8::/32"
|
|
209
|
+
* ipv6.cidr("2001:db8:1:2:3:4:5:6/64").networkCIDR().toString(); // "2001:db8:1:2::/64"
|
|
210
|
+
* ipv6.cidr("2001:db8:abcd::/48").networkCIDR().toString(); // "2001:db8:abcd::/48"
|
|
211
|
+
* ```
|
|
212
|
+
*
|
|
213
|
+
* @returns The network CIDR as an Ipv6Cidr.
|
|
214
|
+
*/
|
|
215
|
+
networkCIDR() {
|
|
216
|
+
if (this.#range === 0) {
|
|
217
|
+
return new Ipv6Cidr([0n, 0]);
|
|
218
|
+
}
|
|
219
|
+
const mask = (1n << 128n) - (1n << BigInt(128 - this.#range));
|
|
220
|
+
const networkNumber = this.#address.toBigInt() & mask;
|
|
221
|
+
return new Ipv6Cidr([networkNumber, this.#range]);
|
|
222
|
+
}
|
|
150
223
|
/**
|
|
151
224
|
* Returns the string representation of the IPv6 CIDR.
|
|
152
225
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipv6-cidr.js","sources":["../../../src/ipv6-cidr.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA
|
|
1
|
+
{"version":3,"file":"ipv6-cidr.js","sources":["../../../src/ipv6-cidr.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED