mirror of
https://github.com/skidoodle/hostinfo
synced 2025-03-16 13:59:38 +01:00
first commit
This commit is contained in:
commit
38e6f714cb
26 changed files with 1856 additions and 0 deletions
26
utils/index.ts
Normal file
26
utils/index.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
export function isPrivateIP(host: string): boolean {
|
||||
try {
|
||||
const ip = host.startsWith('[') ? host.slice(1, -1) : host;
|
||||
if (ip === 'localhost') return true;
|
||||
|
||||
// IPv4 private ranges
|
||||
if (ip.includes('.')) {
|
||||
const parts = ip.split('.').map(Number);
|
||||
return parts[0] === 10 ||
|
||||
(parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31) ||
|
||||
(parts[0] === 192 && parts[1] === 168) ||
|
||||
(parts[0] === 169 && parts[1] === 254);
|
||||
}
|
||||
|
||||
// IPv6 private ranges
|
||||
if (ip.includes(':')) {
|
||||
return ip.startsWith('fc00::/7') ||
|
||||
ip.startsWith('fe80::/10') ||
|
||||
ip.startsWith('::1');
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue