1 | import * as common from './common';
|
2 | import { Address4 } from './ipv4';
|
3 | interface SixToFourProperties {
|
4 | prefix: string;
|
5 | gateway: string;
|
6 | }
|
7 | interface TeredoProperties {
|
8 | prefix: string;
|
9 | server4: string;
|
10 | client4: string;
|
11 | flags: string;
|
12 | coneNat: boolean;
|
13 | microsoft: {
|
14 | reserved: boolean;
|
15 | universalLocal: boolean;
|
16 | groupIndividual: boolean;
|
17 | nonce: string;
|
18 | };
|
19 | udpPort: string;
|
20 | }
|
21 | /**
|
22 | * Represents an IPv6 address
|
23 | * @class Address6
|
24 | * @param {string} address - An IPv6 address string
|
25 | * @param {number} [groups=8] - How many octets to parse
|
26 | * @example
|
27 | * var address = new Address6('2001::/32');
|
28 | */
|
29 | export declare class Address6 {
|
30 | address4?: Address4;
|
31 | address: string;
|
32 | addressMinusSuffix: string;
|
33 | elidedGroups?: number;
|
34 | elisionBegin?: number;
|
35 | elisionEnd?: number;
|
36 | groups: number;
|
37 | parsedAddress4?: string;
|
38 | parsedAddress: string[];
|
39 | parsedSubnet: string;
|
40 | subnet: string;
|
41 | subnetMask: number;
|
42 | v4: boolean;
|
43 | zone: string;
|
44 | constructor(address: string, optionalGroups?: number);
|
45 | static isValid(address: string): boolean;
|
46 | /**
|
47 | * Convert a BigInt to a v6 address object
|
48 | * @memberof Address6
|
49 | * @static
|
50 | * @param {bigint} bigInt - a BigInt to convert
|
51 | * {Address6}
|
52 | *
|
53 | * var bigInt = BigInt('1000000000000');
|
54 | * var address = Address6.fromBigInt(bigInt);
|
55 | * address.correctForm(); // '::e8:d4a5:1000'
|
56 | */
|
57 | static fromBigInt(bigInt: bigint): Address6;
|
58 | /**
|
59 | * Convert a URL (with optional port number) to an address object
|
60 | * @memberof Address6
|
61 | * @static
|
62 | * @param {string} url - a URL with optional port number
|
63 | * @example
|
64 | * var addressAndPort = Address6.fromURL('http://[ffff::]:8080/foo/');
|
65 | * addressAndPort.address.correctForm(); // 'ffff::'
|
66 | * addressAndPort.port; // 8080
|
67 | */
|
68 | static fromURL(url: string): {
|
69 | error: string;
|
70 | address: null;
|
71 | port: null;
|
72 | } | {
|
73 | address: Address6;
|
74 | port: number | null;
|
75 | error?: undefined;
|
76 | };
|
77 | /**
|
78 | * Create an IPv6-mapped address given an IPv4 address
|
79 | * @memberof Address6
|
80 | * @static
|
81 | * @param {string} address - An IPv4 address string
|
82 | * @returns {Address6}
|
83 | * @example
|
84 | * var address = Address6.fromAddress4('192.168.0.1');
|
85 | * address.correctForm(); // '::ffff:c0a8:1'
|
86 | * address.to4in6(); // '::ffff:192.168.0.1'
|
87 | */
|
88 | static fromAddress4(address: string): Address6;
|
89 | /**
|
90 | * Return an address from ip6.arpa form
|
91 | * @memberof Address6
|
92 | * @static
|
93 | * @param {string} arpaFormAddress - an 'ip6.arpa' form address
|
94 | * @returns {Adress6}
|
95 | * @example
|
96 | * var address = Address6.fromArpa(e.f.f.f.3.c.2.6.f.f.f.e.6.6.8.e.1.0.6.7.9.4.e.c.0.0.0.0.1.0.0.2.ip6.arpa.)
|
97 | * address.correctForm(); // '2001:0:ce49:7601:e866:efff:62c3:fffe'
|
98 | */
|
99 | static fromArpa(arpaFormAddress: string): Address6;
|
100 | /**
|
101 | * Return the Microsoft UNC transcription of the address
|
102 | * @memberof Address6
|
103 | * @instance
|
104 | * @returns {String} the Microsoft UNC transcription of the address
|
105 | */
|
106 | microsoftTranscription(): string;
|
107 | /**
|
108 | * Return the first n bits of the address, defaulting to the subnet mask
|
109 | * @memberof Address6
|
110 | * @instance
|
111 | * @param {number} [mask=subnet] - the number of bits to mask
|
112 | * @returns {String} the first n bits of the address as a string
|
113 | */
|
114 | mask(mask?: number): string;
|
115 | /**
|
116 | * Return the number of possible subnets of a given size in the address
|
117 | * @memberof Address6
|
118 | * @instance
|
119 | * @param {number} [subnetSize=128] - the subnet size
|
120 | * @returns {String}
|
121 | */
|
122 | possibleSubnets(subnetSize?: number): string;
|
123 | /**
|
124 | * Helper function getting start address.
|
125 | * @memberof Address6
|
126 | * @instance
|
127 | * @returns {bigint}
|
128 | */
|
129 | _startAddress(): bigint;
|
130 | /**
|
131 | * The first address in the range given by this address' subnet
|
132 | * Often referred to as the Network Address.
|
133 | * @memberof Address6
|
134 | * @instance
|
135 | * @returns {Address6}
|
136 | */
|
137 | startAddress(): Address6;
|
138 | /**
|
139 | * The first host address in the range given by this address's subnet ie
|
140 | * the first address after the Network Address
|
141 | * @memberof Address6
|
142 | * @instance
|
143 | * @returns {Address6}
|
144 | */
|
145 | startAddressExclusive(): Address6;
|
146 | /**
|
147 | * Helper function getting end address.
|
148 | * @memberof Address6
|
149 | * @instance
|
150 | * @returns {bigint}
|
151 | */
|
152 | _endAddress(): bigint;
|
153 | /**
|
154 | * The last address in the range given by this address' subnet
|
155 | * Often referred to as the Broadcast
|
156 | * @memberof Address6
|
157 | * @instance
|
158 | * @returns {Address6}
|
159 | */
|
160 | endAddress(): Address6;
|
161 | /**
|
162 | * The last host address in the range given by this address's subnet ie
|
163 | * the last address prior to the Broadcast Address
|
164 | * @memberof Address6
|
165 | * @instance
|
166 | * @returns {Address6}
|
167 | */
|
168 | endAddressExclusive(): Address6;
|
169 | /**
|
170 | * Return the scope of the address
|
171 | * @memberof Address6
|
172 | * @instance
|
173 | * @returns {String}
|
174 | */
|
175 | getScope(): string;
|
176 | /**
|
177 | * Return the type of the address
|
178 | * @memberof Address6
|
179 | * @instance
|
180 | * @returns {String}
|
181 | */
|
182 | getType(): string;
|
183 | /**
|
184 | * Return the bits in the given range as a BigInt
|
185 | * @memberof Address6
|
186 | * @instance
|
187 | * @returns {bigint}
|
188 | */
|
189 | getBits(start: number, end: number): bigint;
|
190 | /**
|
191 | * Return the bits in the given range as a base-2 string
|
192 | * @memberof Address6
|
193 | * @instance
|
194 | * @returns {String}
|
195 | */
|
196 | getBitsBase2(start: number, end: number): string;
|
197 | /**
|
198 | * Return the bits in the given range as a base-16 string
|
199 | * @memberof Address6
|
200 | * @instance
|
201 | * @returns {String}
|
202 | */
|
203 | getBitsBase16(start: number, end: number): string;
|
204 | /**
|
205 | * Return the bits that are set past the subnet mask length
|
206 | * @memberof Address6
|
207 | * @instance
|
208 | * @returns {String}
|
209 | */
|
210 | getBitsPastSubnet(): string;
|
211 | /**
|
212 | * Return the reversed ip6.arpa form of the address
|
213 | * @memberof Address6
|
214 | * @param {Object} options
|
215 | * @param {boolean} options.omitSuffix - omit the "ip6.arpa" suffix
|
216 | * @instance
|
217 | * @returns {String}
|
218 | */
|
219 | reverseForm(options?: common.ReverseFormOptions): string;
|
220 | /**
|
221 | * Return the correct form of the address
|
222 | * @memberof Address6
|
223 | * @instance
|
224 | * @returns {String}
|
225 | */
|
226 | correctForm(): string;
|
227 | /**
|
228 | * Return a zero-padded base-2 string representation of the address
|
229 | * @memberof Address6
|
230 | * @instance
|
231 | * @returns {String}
|
232 | * @example
|
233 | * var address = new Address6('2001:4860:4001:803::1011');
|
234 | * address.binaryZeroPad();
|
235 | * // '0010000000000001010010000110000001000000000000010000100000000011
|
236 | * // 0000000000000000000000000000000000000000000000000001000000010001'
|
237 | */
|
238 | binaryZeroPad(): string;
|
239 | parse4in6(address: string): string;
|
240 | parse(address: string): string[];
|
241 | /**
|
242 | * Return the canonical form of the address
|
243 | * @memberof Address6
|
244 | * @instance
|
245 | * @returns {String}
|
246 | */
|
247 | canonicalForm(): string;
|
248 | /**
|
249 | * Return the decimal form of the address
|
250 | * @memberof Address6
|
251 | * @instance
|
252 | * @returns {String}
|
253 | */
|
254 | decimal(): string;
|
255 | /**
|
256 | * Return the address as a BigInt
|
257 | * @memberof Address6
|
258 | * @instance
|
259 | * @returns {bigint}
|
260 | */
|
261 | bigInt(): bigint;
|
262 | /**
|
263 | * Return the last two groups of this address as an IPv4 address string
|
264 | * @memberof Address6
|
265 | * @instance
|
266 | * @returns {Address4}
|
267 | * @example
|
268 | * var address = new Address6('2001:4860:4001::1825:bf11');
|
269 | * address.to4().correctForm(); // '24.37.191.17'
|
270 | */
|
271 | to4(): Address4;
|
272 | /**
|
273 | * Return the v4-in-v6 form of the address
|
274 | * @memberof Address6
|
275 | * @instance
|
276 | * @returns {String}
|
277 | */
|
278 | to4in6(): string;
|
279 | /**
|
280 | * Return an object containing the Teredo properties of the address
|
281 | * @memberof Address6
|
282 | * @instance
|
283 | * @returns {Object}
|
284 | */
|
285 | inspectTeredo(): TeredoProperties;
|
286 | /**
|
287 | * Return an object containing the 6to4 properties of the address
|
288 | * @memberof Address6
|
289 | * @instance
|
290 | * @returns {Object}
|
291 | */
|
292 | inspect6to4(): SixToFourProperties;
|
293 | /**
|
294 | * Return a v6 6to4 address from a v6 v4inv6 address
|
295 | * @memberof Address6
|
296 | * @instance
|
297 | * @returns {Address6}
|
298 | */
|
299 | to6to4(): Address6 | null;
|
300 | /**
|
301 | * Return a byte array
|
302 | * @memberof Address6
|
303 | * @instance
|
304 | * @returns {Array}
|
305 | */
|
306 | toByteArray(): number[];
|
307 | /**
|
308 | * Return an unsigned byte array
|
309 | * @memberof Address6
|
310 | * @instance
|
311 | * @returns {Array}
|
312 | */
|
313 | toUnsignedByteArray(): number[];
|
314 | /**
|
315 | * Convert a byte array to an Address6 object
|
316 | * @memberof Address6
|
317 | * @static
|
318 | * @returns {Address6}
|
319 | */
|
320 | static fromByteArray(bytes: Array<any>): Address6;
|
321 | /**
|
322 | * Convert an unsigned byte array to an Address6 object
|
323 | * @memberof Address6
|
324 | * @static
|
325 | * @returns {Address6}
|
326 | */
|
327 | static fromUnsignedByteArray(bytes: Array<any>): Address6;
|
328 | /**
|
329 | * Returns true if the given address is in the subnet of the current address
|
330 | * @memberof Address6
|
331 | * @instance
|
332 | * @returns {boolean}
|
333 | */
|
334 | isInSubnet: typeof common.isInSubnet;
|
335 | /**
|
336 | * Returns true if the address is correct, false otherwise
|
337 | * @memberof Address6
|
338 | * @instance
|
339 | * @returns {boolean}
|
340 | */
|
341 | isCorrect: (this: Address4 | Address6) => boolean;
|
342 | /**
|
343 | * Returns true if the address is in the canonical form, false otherwise
|
344 | * @memberof Address6
|
345 | * @instance
|
346 | * @returns {boolean}
|
347 | */
|
348 | isCanonical(): boolean;
|
349 | /**
|
350 | * Returns true if the address is a link local address, false otherwise
|
351 | * @memberof Address6
|
352 | * @instance
|
353 | * @returns {boolean}
|
354 | */
|
355 | isLinkLocal(): boolean;
|
356 | /**
|
357 | * Returns true if the address is a multicast address, false otherwise
|
358 | * @memberof Address6
|
359 | * @instance
|
360 | * @returns {boolean}
|
361 | */
|
362 | isMulticast(): boolean;
|
363 | /**
|
364 | * Returns true if the address is a v4-in-v6 address, false otherwise
|
365 | * @memberof Address6
|
366 | * @instance
|
367 | * @returns {boolean}
|
368 | */
|
369 | is4(): boolean;
|
370 | /**
|
371 | * Returns true if the address is a Teredo address, false otherwise
|
372 | * @memberof Address6
|
373 | * @instance
|
374 | * @returns {boolean}
|
375 | */
|
376 | isTeredo(): boolean;
|
377 | /**
|
378 | * Returns true if the address is a 6to4 address, false otherwise
|
379 | * @memberof Address6
|
380 | * @instance
|
381 | * @returns {boolean}
|
382 | */
|
383 | is6to4(): boolean;
|
384 | /**
|
385 | * Returns true if the address is a loopback address, false otherwise
|
386 | * @memberof Address6
|
387 | * @instance
|
388 | * @returns {boolean}
|
389 | */
|
390 | isLoopback(): boolean;
|
391 | /**
|
392 | * @returns {String} the address in link form with a default port of 80
|
393 | */
|
394 | href(optionalPort?: number | string): string;
|
395 | /**
|
396 | * @returns {String} a link suitable for conveying the address via a URL hash
|
397 | */
|
398 | link(options?: {
|
399 | className?: string;
|
400 | prefix?: string;
|
401 | v4?: boolean;
|
402 | }): string;
|
403 | /**
|
404 | * Groups an address
|
405 | * @returns {String}
|
406 | */
|
407 | group(): string;
|
408 | /**
|
409 | * Generate a regular expression string that can be used to find or validate
|
410 | * all variations of this address
|
411 | * @memberof Address6
|
412 | * @instance
|
413 | * @param {boolean} substringSearch
|
414 | * @returns {string}
|
415 | */
|
416 | regularExpressionString(this: Address6, substringSearch?: boolean): string;
|
417 | /**
|
418 | * Generate a regular expression that can be used to find or validate all
|
419 | * variations of this address.
|
420 | * @memberof Address6
|
421 | * @instance
|
422 | * @param {boolean} substringSearch
|
423 | * @returns {RegExp}
|
424 | */
|
425 | regularExpression(this: Address6, substringSearch?: boolean): RegExp;
|
426 | }
|
427 | export {};
|
428 | //# sourceMappingURL=ipv6.d.ts.map |
\ | No newline at end of file |