32 lines
728 B
TypeScript
32 lines
728 B
TypeScript
import { Address4 } from './ipv4';
|
|
import { Address6 } from './ipv6';
|
|
|
|
export interface ReverseFormOptions {
|
|
omitSuffix?: boolean;
|
|
}
|
|
|
|
export function isInSubnet(this: Address4 | Address6, address: Address4 | Address6) {
|
|
if (this.subnetMask < address.subnetMask) {
|
|
return false;
|
|
}
|
|
|
|
if (this.mask(address.subnetMask) === address.mask()) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
export function isCorrect(defaultBits: number) {
|
|
return function (this: Address4 | Address6) {
|
|
if (this.addressMinusSuffix !== this.correctForm()) {
|
|
return false;
|
|
}
|
|
|
|
if (this.subnetMask === defaultBits && !this.parsedSubnet) {
|
|
return true;
|
|
}
|
|
|
|
return this.parsedSubnet === String(this.subnetMask);
|
|
};
|
|
}
|