From 137a04f8c43aa379e1b5cf77936d5e6d80eafe3f Mon Sep 17 00:00:00 2001 From: kalugin66 Date: Mon, 27 Jul 2026 01:38:27 +0500 Subject: [PATCH] 127.0.0.1 --- modules/visitors/index.js | 20 +++++++++++--------- server.js | 5 +++++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/modules/visitors/index.js b/modules/visitors/index.js index 5e6a813..9be428c 100644 --- a/modules/visitors/index.js +++ b/modules/visitors/index.js @@ -1,21 +1,22 @@ let db; +const LH = "ip NOT IN ('127.0.0.1', '::1', '::ffff:127.0.0.1')"; function init(database) { db = database; } function getStats(req, res) { - db.get(`SELECT COUNT(DISTINCT session_id) as total FROM visitor_log`, [], (err, totalRow) => { + db.get(`SELECT COUNT(DISTINCT session_id) as total FROM visitor_log WHERE ${LH}`, [], (err, totalRow) => { if (err) return res.status(500).json({ error: err.message }); - db.get(`SELECT COUNT(DISTINCT session_id) as today FROM visitor_log WHERE visit_date = date('now')`, [], (err, todayRow) => { + db.get(`SELECT COUNT(DISTINCT session_id) as today FROM visitor_log WHERE visit_date = date('now') AND ${LH}`, [], (err, todayRow) => { if (err) return res.status(500).json({ error: err.message }); - db.get(`SELECT COUNT(DISTINCT session_id) as week FROM visitor_log WHERE visit_date >= date('now', '-6 days')`, [], (err, weekRow) => { + db.get(`SELECT COUNT(DISTINCT session_id) as week FROM visitor_log WHERE visit_date >= date('now', '-6 days') AND ${LH}`, [], (err, weekRow) => { if (err) return res.status(500).json({ error: err.message }); - db.get(`SELECT COUNT(DISTINCT session_id) as month FROM visitor_log WHERE visit_date >= date('now', 'start of month')`, [], (err, monthRow) => { + db.get(`SELECT COUNT(DISTINCT session_id) as month FROM visitor_log WHERE visit_date >= date('now', 'start of month') AND ${LH}`, [], (err, monthRow) => { if (err) return res.status(500).json({ error: err.message }); - db.get(`SELECT COUNT(*) as page_views FROM visitor_log`, [], (err, pvRow) => { + db.get(`SELECT COUNT(*) as page_views FROM visitor_log WHERE ${LH}`, [], (err, pvRow) => { if (err) return res.status(500).json({ error: err.message }); - db.get(`SELECT COUNT(DISTINCT ip) as unique_ips FROM visitor_log`, [], (err, ipRow) => { + db.get(`SELECT COUNT(DISTINCT ip) as unique_ips FROM visitor_log WHERE ${LH}`, [], (err, ipRow) => { if (err) return res.status(500).json({ error: err.message }); res.json({ total: totalRow ? totalRow.total : 0, @@ -38,6 +39,7 @@ function getCountries(req, res) { COALESCE(NULLIF(country_code, ''), '--') as country_code, COUNT(DISTINCT session_id) as count FROM visitor_log + WHERE ${LH} GROUP BY COALESCE(NULLIF(country_code, ''), '--') ORDER BY count DESC LIMIT 30`, [], (err, rows) => { if (err) return res.status(500).json({ error: err.message }); @@ -48,7 +50,7 @@ function getCountries(req, res) { function getLanguages(req, res) { db.all(`SELECT accept_language, COUNT(DISTINCT session_id) as count FROM visitor_log - WHERE accept_language IS NOT NULL AND accept_language != '' + WHERE accept_language IS NOT NULL AND accept_language != '' AND ${LH} GROUP BY accept_language ORDER BY count DESC`, [], (err, rows) => { if (err) return res.status(500).json({ error: err.message }); @@ -64,7 +66,7 @@ function getLanguages(req, res) { function getDaily(req, res) { db.all(`SELECT visit_date, COUNT(DISTINCT session_id) as count, COUNT(*) as page_views FROM visitor_log - WHERE visit_date >= date('now', '-29 days') + WHERE visit_date >= date('now', '-29 days') AND ${LH} GROUP BY visit_date ORDER BY visit_date ASC`, [], (err, rows) => { if (err) return res.status(500).json({ error: err.message }); @@ -77,7 +79,7 @@ function getIPs(req, res) { const offset = parseInt(req.query.offset) || 0; const { id, ip, country, lang, date_from, date_to, page } = req.query; - const whereClauses = []; + const whereClauses = [LH]; const params = []; if (id) { whereClauses.push('id = ?'); params.push(parseInt(id)); } diff --git a/server.js b/server.js index 957afc5..71246ba 100644 --- a/server.js +++ b/server.js @@ -233,6 +233,11 @@ app.use((req, res, next) => { } const ip = req.ip || req.connection.remoteAddress || ''; + + if (ip === '127.0.0.1' || ip === '::1' || ip === '::ffff:127.0.0.1') { + return next(); + } + const cookies = parseCookies(req.headers.cookie); let sessionId = cookies.visitor_sid;