UNPKG

@daysnap/utils

Version:
30 lines (28 loc) 619 B
// src/isLan.ts function isLan(ip) { ip = ip.toLocaleLowerCase(); if (ip === "localhost") { return true; } if (ip === "") { return false; } let v = 0; const aNum = ip.split("."); if (aNum.length !== 4) { return false; } v += parseInt(aNum[0], 10) << 24; v += parseInt(aNum[1], 10) << 16; v += parseInt(aNum[2], 10) << 8; v += parseInt(aNum[3], 10) << 0; v = v >> 16 & 65535; return ( // eslint-disable-next-line no-bitwise v >> 8 === 127 || // eslint-disable-next-line no-bitwise v >> 8 === 10 || v === 49320 || v >= 44048 && v <= 44063 ); } export { isLan };