@pfeiferio/ipv4 1.0.0 → 1.0.2
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/LICENSE +21 -0
- package/dist/IPv4Address.d.ts +2 -1
- package/dist/IPv4Address.d.ts.map +1 -1
- package/dist/IPv4Address.js +7 -1
- package/dist/IPv4Address.js.map +1 -1
- package/dist/IPv4Network.d.ts +1 -0
- package/dist/IPv4Network.d.ts.map +1 -1
- package/dist/IPv4Network.js +8 -2
- package/dist/IPv4Network.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +28 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +29 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Pascal Pfeifer <pascal@pfeifer.zone>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/IPv4Address.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IPv4Network } from "./IPv4Network.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { IPv4AddressAsString, IPv4AddressInAddrArpa, IPv4AddressWithCidrAsString, IPv4Input } from "./types.js";
|
|
3
3
|
type IpV4Options = {
|
|
4
4
|
allowZeroOctet?: boolean;
|
|
5
5
|
};
|
|
@@ -33,6 +33,7 @@ export declare class IPv4Address {
|
|
|
33
33
|
toBinary(): string;
|
|
34
34
|
toBinaryAddress(): string;
|
|
35
35
|
toHex(): string;
|
|
36
|
+
sharedPrefixLength(other: IPv4Input): number;
|
|
36
37
|
}
|
|
37
38
|
export {};
|
|
38
39
|
//# sourceMappingURL=IPv4Address.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPv4Address.d.ts","sourceRoot":"","sources":["../src/IPv4Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"IPv4Address.d.ts","sourceRoot":"","sources":["../src/IPv4Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAEnH,KAAK,WAAW,GAAG;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,qBAAa,WAAW;;IAMtB,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,MAAM,WAAW,EAAE,CAAC;IACpC,MAAM,CAAC,OAAO,EAAE,MAAM,WAAW,EAAE,CAAC;gBAGlC,WAAW,EAAE,SAAS,EACtB,cAAc,GAAE,MAAM,GAAG,IAAW,EACpC,EAAC,cAAsB,EAAC,GAAE,WAAgB;IA2B5C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,OAAO,IAAI,mBAAmB,CAEjC;IAED,IAAI,eAAe,IAAI,2BAA2B,CAEjD;IAgBD,OAAO,IAAI,WAAW;IAItB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAItC,QAAQ,IAAI,mBAAmB;IAI/B,SAAS,IAAI,MAAM;IAInB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAMjC,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIxC,IAAI,IAAI,WAAW,GAAG,IAAI;IAK1B,IAAI,IAAI,WAAW,GAAG,IAAI;IAK1B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAIvC,SAAS,IAAI,OAAO;IAWpB,QAAQ,IAAI,OAAO;IAKnB,UAAU,IAAI,OAAO;IAKrB,WAAW,IAAI,OAAO;IAKtB,WAAW,IAAI,OAAO;IAKtB,UAAU,IAAI,OAAO;IAKrB,cAAc,IAAI,qBAAqB;IAKvC,QAAQ,IAAI,MAAM;IAMlB,eAAe,IAAI,MAAM;IAKzB,KAAK,IAAI,MAAM;IAIf,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;CAM7C"}
|
package/dist/IPv4Address.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IPv4Network } from "./IPv4Network.js";
|
|
2
|
-
import { ipV4, parseNumberToIp, parseStringToIp } from "./utils.js";
|
|
2
|
+
import { getCommonPrefixLength, ipV4, parseNumberToIp, parseStringToIp } from "./utils.js";
|
|
3
3
|
export class IPv4Address {
|
|
4
4
|
#addressAsInteger = 0;
|
|
5
5
|
#prefix;
|
|
@@ -136,6 +136,12 @@ export class IPv4Address {
|
|
|
136
136
|
toHex() {
|
|
137
137
|
return this.#addressAsInteger.toString(16).toUpperCase().padStart(8, '0');
|
|
138
138
|
}
|
|
139
|
+
sharedPrefixLength(other) {
|
|
140
|
+
if (!(other instanceof IPv4Address)) {
|
|
141
|
+
other = new IPv4Address(other);
|
|
142
|
+
}
|
|
143
|
+
return getCommonPrefixLength(this.toInteger(), other.toInteger());
|
|
144
|
+
}
|
|
139
145
|
}
|
|
140
146
|
IPv4Address.fromInteger = (value, prefix = 32) => new IPv4Address(value, prefix);
|
|
141
147
|
IPv4Address.fromString = (value) => ipV4(value);
|
package/dist/IPv4Address.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPv4Address.js","sourceRoot":"","sources":["../src/IPv4Address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,IAAI,EAAE,eAAe,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"IPv4Address.js","sourceRoot":"","sources":["../src/IPv4Address.ts"],"names":[],"mappings":"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"}
|
package/dist/IPv4Network.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare class IPv4Network {
|
|
|
18
18
|
containsNetwork(other: IPv4NetworkInput): boolean;
|
|
19
19
|
isSubnetOf(other: IPv4NetworkInput): boolean;
|
|
20
20
|
isSupernetOf(other: IPv4NetworkInput): boolean;
|
|
21
|
+
sharedPrefixLength(other: IPv4NetworkInput): number;
|
|
21
22
|
toInteger(): number;
|
|
22
23
|
toString(): string;
|
|
23
24
|
equals(other: IPv4Input): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPv4Network.d.ts","sourceRoot":"","sources":["../src/IPv4Network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,mBAAmB,EAAE,2BAA2B,EAAE,SAAS,EAAE,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAE9G,qBAAa,WAAW;;gBAMV,OAAO,EAAE,gBAAgB;IAerC,IAAI,eAAe,IAAI,2BAA2B,CAEjD;IAED,IAAI,OAAO,IAAI,mBAAmB,CAEjC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAGlC;IAED,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,CAGjC;IAED,IAAI,SAAS,IAAI,WAAW,CAE3B;IAED,IAAI,OAAO,IAAI,WAAW,CAGzB;IAED,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED,IAAI,SAAS,IAAI,MAAM,CAGtB;IAED,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAYnC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAc1C,eAAe,CAAC,KAAK,EAAE,gBAAgB;IAcvC,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAO5C,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAI9C,SAAS,IAAI,MAAM;IAInB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAM/B,KAAK,CAAC,UAAU,GAAE,OAAe,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;IAWvG,SAAS,CAAC,UAAU,GAAE,OAAe,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;CAO9G"}
|
|
1
|
+
{"version":3,"file":"IPv4Network.d.ts","sourceRoot":"","sources":["../src/IPv4Network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAC,mBAAmB,EAAE,2BAA2B,EAAE,SAAS,EAAE,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAE9G,qBAAa,WAAW;;gBAMV,OAAO,EAAE,gBAAgB;IAerC,IAAI,eAAe,IAAI,2BAA2B,CAEjD;IAED,IAAI,OAAO,IAAI,mBAAmB,CAEjC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAGlC;IAED,IAAI,QAAQ,IAAI,WAAW,GAAG,IAAI,CAGjC;IAED,IAAI,SAAS,IAAI,WAAW,CAE3B;IAED,IAAI,OAAO,IAAI,WAAW,CAGzB;IAED,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED,IAAI,SAAS,IAAI,MAAM,CAGtB;IAED,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAYnC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAc1C,eAAe,CAAC,KAAK,EAAE,gBAAgB;IAcvC,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAO5C,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAI9C,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAOnD,SAAS,IAAI,MAAM;IAInB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAM/B,KAAK,CAAC,UAAU,GAAE,OAAe,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;IAWvG,SAAS,CAAC,UAAU,GAAE,OAAe,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;CAO9G"}
|
package/dist/IPv4Network.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IPv4Address } from "./IPv4Address.js";
|
|
2
|
-
import { intToIp, ipV4
|
|
2
|
+
import { getCommonPrefixLength, getNetworkAddress, intToIp, ipV4 } from "./utils.js";
|
|
3
3
|
export class IPv4Network {
|
|
4
4
|
#addressAsInteger;
|
|
5
5
|
#prefix;
|
|
@@ -14,7 +14,7 @@ export class IPv4Network {
|
|
|
14
14
|
else if (!(address instanceof IPv4Address)) {
|
|
15
15
|
address = new IPv4Address(address);
|
|
16
16
|
}
|
|
17
|
-
this.#addressAsInteger =
|
|
17
|
+
this.#addressAsInteger = getNetworkAddress(address.toInteger(), address.prefix);
|
|
18
18
|
this.#address = intToIp(this.#addressAsInteger);
|
|
19
19
|
this.#prefix = address.prefix;
|
|
20
20
|
}
|
|
@@ -91,6 +91,12 @@ export class IPv4Network {
|
|
|
91
91
|
isSupernetOf(other) {
|
|
92
92
|
return this.containsNetwork(other);
|
|
93
93
|
}
|
|
94
|
+
sharedPrefixLength(other) {
|
|
95
|
+
if (!(other instanceof IPv4Network)) {
|
|
96
|
+
other = new IPv4Network(other);
|
|
97
|
+
}
|
|
98
|
+
return getCommonPrefixLength(this.toInteger(), other.toInteger());
|
|
99
|
+
}
|
|
94
100
|
toInteger() {
|
|
95
101
|
return this.#addressAsInteger;
|
|
96
102
|
}
|
package/dist/IPv4Network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IPv4Network.js","sourceRoot":"","sources":["../src/IPv4Network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"IPv4Network.js","sourceRoot":"","sources":["../src/IPv4Network.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ipV4 } from "./utils.js";
|
|
2
2
|
export { IPv4Address } from './IPv4Address.js';
|
|
3
3
|
export { IPv4Network } from './IPv4Network.js';
|
|
4
|
-
export { ipToInt, intToIp,
|
|
4
|
+
export { ipToInt, intToIp, getNetworkAddress } from './utils.js';
|
|
5
5
|
export type { IPv4Input, IPv4NetworkInput } from './types.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAGhC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAG5C,OAAO,EACL,OAAO,EACP,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAGhC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAG5C,OAAO,EACL,OAAO,EACP,OAAO,EACP,iBAAiB,EAClB,MAAM,YAAY,CAAA;AAGnB,YAAY,EACV,SAAS,EACT,gBAAgB,EACjB,MAAM,YAAY,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,5 +4,5 @@ export { ipV4 } from "./utils.js";
|
|
|
4
4
|
export { IPv4Address } from './IPv4Address.js';
|
|
5
5
|
export { IPv4Network } from './IPv4Network.js';
|
|
6
6
|
// utils
|
|
7
|
-
export { ipToInt, intToIp,
|
|
7
|
+
export { ipToInt, intToIp, getNetworkAddress } from './utils.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAEhC,UAAU;AACV,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAE5C,QAAQ;AACR,OAAO,EACL,OAAO,EACP,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAEhC,UAAU;AACV,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAE5C,QAAQ;AACR,OAAO,EACL,OAAO,EACP,OAAO,EACP,iBAAiB,EAClB,MAAM,YAAY,CAAA"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
import { IPv4Address } from "./IPv4Address.js";
|
|
2
2
|
import type { IPv4Input, ParserResult } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Convert a 32-bit integer to an IPv4 address in dotted-decimal notation.
|
|
5
|
+
*
|
|
6
|
+
* @param value - Unsigned 32-bit integer
|
|
7
|
+
* @returns IPv4 address (e.g. "192.168.0.1")
|
|
8
|
+
*/
|
|
3
9
|
export declare const intToIp: (value: number) => string;
|
|
4
10
|
export declare const ipV4: (address: IPv4Input) => IPv4Address;
|
|
11
|
+
/**
|
|
12
|
+
* Convert an IPv4 address from dotted-decimal notation to a 32-bit integer.
|
|
13
|
+
*
|
|
14
|
+
* @param ipv4Address - IPv4 address (e.g. "192.168.0.1")
|
|
15
|
+
* @returns Unsigned 32-bit integer representation
|
|
16
|
+
*/
|
|
5
17
|
export declare const ipToInt: (ipv4Address: string) => number;
|
|
6
18
|
export declare const parseStringToIp: (ipv4Address: string, prefixOverride?: number | null) => ParserResult;
|
|
7
19
|
export declare const parseNumberToIp: (ipv4Address: number) => ParserResult;
|
|
8
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Calculate the network address for an IPv4 address and CIDR prefix.
|
|
22
|
+
*
|
|
23
|
+
* @param ip - IPv4 address or its 32-bit integer representation
|
|
24
|
+
* @param prefix - CIDR prefix length (0–32)
|
|
25
|
+
* @returns Network address as unsigned 32-bit integer
|
|
26
|
+
*/
|
|
27
|
+
export declare const getNetworkAddress: (ip: number | string, prefix: number) => number;
|
|
28
|
+
/**
|
|
29
|
+
* Determine the longest common CIDR prefix length shared by two IPv4 addresses.
|
|
30
|
+
*
|
|
31
|
+
* @param a - First IPv4 address as 32-bit integer
|
|
32
|
+
* @param b - Second IPv4 address as 32-bit integer
|
|
33
|
+
* @returns Common prefix length (0–32)
|
|
34
|
+
*/
|
|
35
|
+
export declare const getCommonPrefixLength: (a: number, b: number) => number;
|
|
9
36
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,KAAG,MAWvC,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,SAAS,SAAS,KAAG,WAAuC,CAAA;AAEjF,eAAO,MAAM,OAAO,GAAI,aAAa,MAAM,KAAG,MA0B7C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,EAAE,iBAAgB,MAAM,GAAG,IAAW,KAAG,YA2B3F,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,YAMrD,CAAA;AAED,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,KAAG,MAWvC,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,SAAS,SAAS,KAAG,WAAuC,CAAA;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,aAAa,MAAM,KAAG,MA0B7C,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,EAAE,iBAAgB,MAAM,GAAG,IAAW,KAAG,YA2B3F,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,YAMrD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,GAAG,MAAM,EAAE,QAAQ,MAAM,KAAG,MAiBvE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAClC,CAAA"}
|
package/dist/utils.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { IPv4Address } from "./IPv4Address.js";
|
|
2
|
+
/**
|
|
3
|
+
* Convert a 32-bit integer to an IPv4 address in dotted-decimal notation.
|
|
4
|
+
*
|
|
5
|
+
* @param value - Unsigned 32-bit integer
|
|
6
|
+
* @returns IPv4 address (e.g. "192.168.0.1")
|
|
7
|
+
*/
|
|
2
8
|
export const intToIp = (value) => {
|
|
3
9
|
if (!Number.isInteger(value) || value < 0 || value > 0xFFFFFFFF) {
|
|
4
10
|
throw new Error('Invalid IPv4 integer');
|
|
@@ -11,6 +17,12 @@ export const intToIp = (value) => {
|
|
|
11
17
|
].join('.');
|
|
12
18
|
};
|
|
13
19
|
export const ipV4 = (address) => new IPv4Address(address);
|
|
20
|
+
/**
|
|
21
|
+
* Convert an IPv4 address from dotted-decimal notation to a 32-bit integer.
|
|
22
|
+
*
|
|
23
|
+
* @param ipv4Address - IPv4 address (e.g. "192.168.0.1")
|
|
24
|
+
* @returns Unsigned 32-bit integer representation
|
|
25
|
+
*/
|
|
14
26
|
export const ipToInt = (ipv4Address) => {
|
|
15
27
|
const parts = ipv4Address.split('/');
|
|
16
28
|
if (parts.length > 2) {
|
|
@@ -58,7 +70,15 @@ export const parseNumberToIp = (ipv4Address) => {
|
|
|
58
70
|
prefix: 32
|
|
59
71
|
};
|
|
60
72
|
};
|
|
61
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Calculate the network address for an IPv4 address and CIDR prefix.
|
|
75
|
+
*
|
|
76
|
+
* @param ip - IPv4 address or its 32-bit integer representation
|
|
77
|
+
* @param prefix - CIDR prefix length (0–32)
|
|
78
|
+
* @returns Network address as unsigned 32-bit integer
|
|
79
|
+
*/
|
|
80
|
+
export const getNetworkAddress = (ip, prefix) => {
|
|
81
|
+
ip = typeof ip === 'number' ? ip : ipToInt(ip);
|
|
62
82
|
if (!Number.isInteger(ip) || ip < 0 || ip > 0xFFFFFFFF) {
|
|
63
83
|
throw new Error('Invalid IPv4 integer');
|
|
64
84
|
}
|
|
@@ -71,4 +91,12 @@ export const networkAddressFromInt = (ip, prefix) => {
|
|
|
71
91
|
const mask = (0xFFFFFFFF << (32 - prefix)) >>> 0;
|
|
72
92
|
return (ip & mask) >>> 0;
|
|
73
93
|
};
|
|
94
|
+
/**
|
|
95
|
+
* Determine the longest common CIDR prefix length shared by two IPv4 addresses.
|
|
96
|
+
*
|
|
97
|
+
* @param a - First IPv4 address as 32-bit integer
|
|
98
|
+
* @param b - Second IPv4 address as 32-bit integer
|
|
99
|
+
* @returns Common prefix length (0–32)
|
|
100
|
+
*/
|
|
101
|
+
export const getCommonPrefixLength = (a, b) => Math.clz32((a ^ b) >>> 0);
|
|
74
102
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED