ipaddr.js.d.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. declare module "ipaddr.js" {
  2. type IPvXRangeDefaults = 'unicast' | 'unspecified' | 'multicast' | 'linkLocal' | 'loopback' | 'reserved';
  3. type IPv4Range = IPvXRangeDefaults | 'broadcast' | 'carrierGradeNat' | 'private';
  4. type IPv6Range = IPvXRangeDefaults | 'uniqueLocal' | 'ipv4Mapped' | 'rfc6145' | 'rfc6052' | '6to4' | 'teredo';
  5. interface RangeList<T> {
  6. [name: string]: [T, number] | [T, number][];
  7. }
  8. // Common methods/properties for IPv4 and IPv6 classes.
  9. class IP {
  10. prefixLengthFromSubnetMask(): number | null;
  11. toByteArray(): number[];
  12. toNormalizedString(): string;
  13. toString(): string;
  14. }
  15. namespace Address {
  16. export function fromByteArray(bytes: number[]): IPv4 | IPv6;
  17. export function isValid(addr: string): boolean;
  18. export function parse(addr: string): IPv4 | IPv6;
  19. export function parseCIDR(mask: string): [IPv4 | IPv6, number];
  20. export function process(addr: string): IPv4 | IPv6;
  21. export function subnetMatch(addr: IPv4 | IPv6, rangeList: RangeList<IPv4 | IPv6>, defaultName?: string): string;
  22. export class IPv4 extends IP {
  23. static broadcastAddressFromCIDR(addr: string): IPv4;
  24. static isIPv4(addr: string): boolean;
  25. static isValidFourPartDecimal(addr: string): boolean;
  26. static isValid(addr: string): boolean;
  27. static networkAddressFromCIDR(addr: string): IPv4;
  28. static parse(addr: string): IPv4;
  29. static parseCIDR(addr: string): [IPv4, number];
  30. static subnetMaskFromPrefixLength(prefix: number): IPv4;
  31. constructor(octets: number[]);
  32. octets: number[]
  33. kind(): 'ipv4';
  34. match(what: IPv4 | IPv6 | [IPv4 | IPv6, number], bits?: number): boolean;
  35. range(): IPv4Range;
  36. subnetMatch(rangeList: RangeList<IPv4>, defaultName?: string): string;
  37. toIPv4MappedAddress(): IPv6;
  38. }
  39. export class IPv6 extends IP {
  40. static broadcastAddressFromCIDR(addr: string): IPv6;
  41. static isIPv6(addr: string): boolean;
  42. static isValid(addr: string): boolean;
  43. static networkAddressFromCIDR(addr: string): IPv6;
  44. static parse(addr: string): IPv6;
  45. static parseCIDR(addr: string): [IPv6, number];
  46. static subnetMaskFromPrefixLength(prefix: number): IPv6;
  47. constructor(parts: number[]);
  48. parts: number[]
  49. zoneId?: string
  50. isIPv4MappedAddress(): boolean;
  51. kind(): 'ipv6';
  52. match(what: IPv4 | IPv6 | [IPv4 | IPv6, number], bits?: number): boolean;
  53. range(): IPv6Range;
  54. subnetMatch(rangeList: RangeList<IPv6>, defaultName?: string): string;
  55. toIPv4Address(): IPv4;
  56. toRFC5952String(): string;
  57. }
  58. }
  59. export = Address;
  60. }