(host: string)
| 23 | const MDNS = /\.local$/i; |
| 24 | |
| 25 | function parseIPv4(host: string): [number, number, number, number] | null { |
| 26 | const m = IPV4_SHAPE.exec(host); |
| 27 | if (!m) return null; |
| 28 | const parts: number[] = []; |
| 29 | for (let i = 1; i <= 4; i++) { |
| 30 | const n = Number(m[i]); |
| 31 | if (!Number.isInteger(n) || n < 0 || n > 255) return null; |
| 32 | parts.push(n); |
| 33 | } |
| 34 | return parts as [number, number, number, number]; |
| 35 | } |
| 36 | |
| 37 | function isPrivateOrLoopbackV4(host: string): boolean { |
| 38 | const ip = parseIPv4(host); |
no test coverage detected