@daysnap/utils
Version:
30 lines (28 loc) • 619 B
JavaScript
// 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
};