@daysnap/utils
Version:
30 lines (26 loc) • 697 B
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});// 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
);
}
exports.isLan = isLan;