(hostname: string)
| 26 | } |
| 27 | |
| 28 | const parseIpv4 = (hostname: string): readonly [number, number, number, number] | null => { |
| 29 | const parts = hostname.split("."); |
| 30 | if (parts.length !== 4) return null; |
| 31 | const parsed: number[] = []; |
| 32 | for (const part of parts) { |
| 33 | if (!/^\d+$/.test(part)) return null; |
| 34 | const value = Number(part); |
| 35 | if (!Number.isInteger(value) || value < 0 || value > 255) return null; |
| 36 | parsed.push(value); |
| 37 | } |
| 38 | return parsed as [number, number, number, number]; |
| 39 | }; |
| 40 | |
| 41 | const parseIpv4MappedIpv6 = ( |
| 42 | hostname: string, |
no test coverage detected