Sfoglia il codice sorgente

use cf-ipcountry header for country and use geoip-lite as a backup method

Pouria Ezzati 1 anno fa
parent
commit
d7ad5062f7
2 ha cambiato i file con 4 aggiunte e 3 eliminazioni
  1. 2 0
      server/handlers/links.handler.js
  2. 2 3
      server/queues/visit.js

+ 2 - 0
server/handlers/links.handler.js

@@ -525,6 +525,7 @@ async function redirect(req, res, next) {
     queue.visit.add({
       userAgent: req.headers["user-agent"],
       ip: req.ip,
+      country: req.get("cf-ipcountry"),
       referrer: req.get("Referrer"),
       link
     });
@@ -556,6 +557,7 @@ async function redirectProtected(req, res) {
     queue.visit.add({
       userAgent: req.headers["user-agent"],
       ip: req.ip,
+      country: req.get("cf-ipcountry"),
       referrer: req.get("Referrer"),
       link
     });

+ 2 - 3
server/queues/visit.js

@@ -33,10 +33,9 @@ module.exports = function({ data }) {
   const [os = "Other"] = osList.filter(filterInOs(agent));
   const referrer =
   data.referrer && removeWww(URL.parse(data.referrer).hostname);
-  const location = geoip.lookup(data.ip);
-  const country = location && location.country;
-
   
+  const country = data.country || geoip.lookup(data.ip)?.country;
+
   tasks.push(
     query.visit.add({
       browser: browser.toLowerCase(),