ipaddr.js.d.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. declare module "ipaddr.js" {
  2. type IPvXRangeDefaults = 'unicast' | 'unspecified' | 'multicast' | 'linkLocal' | 'loopback' | 'reserved' | 'benchmarking' | 'amt';
  3. type IPv4Range = IPvXRangeDefaults | 'broadcast' | 'carrierGradeNat' | 'private' | 'as112';
  4. type IPv6Range = IPvXRangeDefaults | 'uniqueLocal' | 'ipv4Mapped' | 'rfc6145' | 'rfc6052' | '6to4' | 'teredo' | 'as112v6' | 'orchid2' | 'droneRemoteIdProtocolEntityTags';
  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 isValidCIDR(addr: string): boolean;
  19. export function parse(addr: string): IPv4 | IPv6;
  20. export function parseCIDR(mask: string): [IPv4 | IPv6, number];
  21. export function process(addr: string): IPv4 | IPv6;
  22. export function subnetMatch(addr: IPv4 | IPv6, rangeList: RangeList<IPv4 | IPv6>, defaultName?: string): string;
  23. export class IPv4 extends IP {
  24. static broadcastAddressFromCIDR(addr: string): IPv4;
  25. static isIPv4(addr: string): boolean;
  26. static isValid(addr: string): boolean;
  27. static isValidCIDR(addr: string): boolean;
  28. static isValidFourPartDecimal(addr: string): boolean;
  29. static isValidCIDRFourPartDecimal(addr: string): boolean;
  30. static networkAddressFromCIDR(addr: string): IPv4;
  31. static parse(addr: string): IPv4;
  32. static parseCIDR(addr: string): [IPv4, number];
  33. static subnetMaskFromPrefixLength(prefix: number): IPv4;
  34. constructor(octets: number[]);
  35. octets: number[]
  36. kind(): 'ipv4';
  37. match(what: IPv4 | IPv6 | [IPv4 | IPv6, number], bits?: number): boolean;
  38. range(): IPv4Range;
  39. subnetMatch(rangeList: RangeList<IPv4>, defaultName?: string): string;
  40. toIPv4MappedAddress(): IPv6;
  41. }
  42. export class IPv6 extends IP {
  43. static broadcastAddressFromCIDR(addr: string): IPv6;
  44. static isIPv6(addr: string): boolean;
  45. static isValid(addr: string): boolean;
  46. static isValidCIDR(addr: string): boolean;
  47. static networkAddressFromCIDR(addr: string): IPv6;
  48. static parse(addr: string): IPv6;
  49. static parseCIDR(addr: string): [IPv6, number];
  50. static subnetMaskFromPrefixLength(prefix: number): IPv6;
  51. constructor(parts: number[]);
  52. parts: number[]
  53. zoneId?: string
  54. isIPv4MappedAddress(): boolean;
  55. kind(): 'ipv6';
  56. match(what: IPv4 | IPv6 | [IPv4 | IPv6, number], bits?: number): boolean;
  57. range(): IPv6Range;
  58. subnetMatch(rangeList: RangeList<IPv6>, defaultName?: string): string;
  59. toIPv4Address(): IPv4;
  60. toRFC5952String(): string;
  61. }
  62. }
  63. export = Address;
  64. }