test
This commit is contained in:
@@ -41,17 +41,14 @@ let obj = {
|
||||
isReservedOrLocalIP(ip) {
|
||||
if (ip.includes('.')) {
|
||||
const parts = ip.split('.').map(Number);
|
||||
// 格式验证
|
||||
if (parts.length !== 4 || parts.some(n => n < 0 || n > 255)) return false;
|
||||
|
||||
// 1. 局域网地址(私有地址)
|
||||
if (
|
||||
parts[0] === 10 || // 10.0.0.0/8 [1,2,4](@ref)
|
||||
(parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31) || // 172.16.0.0/12 [1,2,4](@ref)
|
||||
(parts[0] === 192 && parts[1] === 168) // 192.168.0.0/16 [1,2,4](@ref)
|
||||
parts[0] === 10 ||
|
||||
(parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31) ||
|
||||
(parts[0] === 192 && parts[1] === 168)
|
||||
) return true;
|
||||
|
||||
// 2. 保留地址
|
||||
return (
|
||||
parts[0] === 127 ||
|
||||
(parts[0] === 169 && parts[1] === 254) ||
|
||||
@@ -61,15 +58,12 @@ let obj = {
|
||||
);
|
||||
}
|
||||
|
||||
// ------------------------- IPv6 处理逻辑 -------------------------
|
||||
// IPv6 处理逻辑
|
||||
if (ip.includes(':')) {
|
||||
// 规范化IPv6(展开缩写)
|
||||
const normalized = ip.replace(/(^:|:$)/g, '::').replace(/::/g, ':0:').split(':')
|
||||
.map(seg => seg.padStart(4, '0')).join(':').padStart(39, '0:');
|
||||
|
||||
if (normalized.startsWith('fc00:') || normalized.startsWith('fd00:')) return true;
|
||||
|
||||
// 2. 保留地址
|
||||
return (
|
||||
normalized === '0000:0000:0000:0000:0000:0000:0000:0001' ||
|
||||
normalized.startsWith('fe80:') ||
|
||||
@@ -142,7 +136,28 @@ module.exports = {
|
||||
_before: function () { // 通用预处理器
|
||||
|
||||
},
|
||||
|
||||
async getIP(query) {
|
||||
try {
|
||||
let { uid } = query;
|
||||
let res = await db.collection("uni-id-users")
|
||||
.doc(uid)
|
||||
.field({
|
||||
_id: 1,
|
||||
last_login_ip: 1
|
||||
})
|
||||
.get();
|
||||
console.log(res.data[0]);
|
||||
return {
|
||||
code: 200,
|
||||
data: res.data[0]
|
||||
}
|
||||
} catch(e) {
|
||||
return {
|
||||
code: 500,
|
||||
msg: e.message
|
||||
}
|
||||
}
|
||||
},
|
||||
async get_user_info(query) {
|
||||
try {
|
||||
let uid = query.uid;
|
||||
|
||||
Reference in New Issue
Block a user