@chainsafe/is-ip
Version:
Check if a string is an IP address
30 lines (25 loc) • 716 B
text/typescript
import { parseIP, parseIPv4, parseIPv6 } from "./parse.js";
/** Check if `input` is IPv4. */
export function isIPv4(input: string): boolean {
return Boolean(parseIPv4(input));
}
/** Check if `input` is IPv6. */
export function isIPv6(input: string): boolean {
return Boolean(parseIPv6(input));
}
/** Check if `input` is IPv4 or IPv6. */
export function isIP(input: string): boolean {
return Boolean(parseIP(input));
}
/**
* @returns `6` if `input` is IPv6, `4` if `input` is IPv4, or `undefined` if `input` is neither.
*/
export function ipVersion(input: string): 4 | 6 | undefined {
if (isIPv4(input)) {
return 4;
} else if (isIPv6(input)) {
return 6;
} else {
return undefined;
}
}