24 lines
725 B
TypeScript
24 lines
725 B
TypeScript
export function ipToUint32(ip: string): number {
|
|
const parts = ip.split('.')
|
|
if (parts.length !== 4) return 0
|
|
return (
|
|
(parseInt(parts[0], 10) |
|
|
(parseInt(parts[1], 10) << 8) |
|
|
(parseInt(parts[2], 10) << 16) |
|
|
(parseInt(parts[3], 10) << 24)) >>>
|
|
0
|
|
)
|
|
}
|
|
|
|
export function uint32ToIp(ip: number): string {
|
|
return [ip & 0xff, (ip >>> 8) & 0xff, (ip >>> 16) & 0xff, (ip >>> 24) & 0xff].join('.')
|
|
}
|
|
|
|
export function isValidIpString(ip: string | undefined): boolean {
|
|
if (!ip) return false
|
|
const regexExp =
|
|
/\b(?:(?:2(?:[0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9])\.){3}(?:(?:2([0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9]))\b/
|
|
return regexExp.test(ip)
|
|
}
|
|
|