change get ip method

pull/1644/head
Sergei Meza 2022-10-14 18:54:29 +09:00
parent 1ca468cce1
commit 3c906d066b
2 changed files with 21 additions and 2 deletions

View File

@ -76,9 +76,9 @@ export async function getCountry(req, ip) {
return result?.country?.iso_code;
}
export async function getClientInfo(req, { screen }) {
export async function getClientInfo(req, { screen, ip }) {
const userAgent = req.headers['user-agent'];
const ip = getIpAddress(req);
// const ip = getIpAddress(req);
const country = await getCountry(req, ip);
const browser = browserName(userAgent);
const os = detectOS(userAgent);

View File

@ -70,6 +70,7 @@
let currentUrl = `${pathname}${search}`;
let currentRef = document.referrer;
let cache;
let ip;
/* Collect metrics */
@ -79,9 +80,26 @@
screen,
language,
url: currentUrl,
ip,
});
const getClientIPAddress = () => {
if (ip) return ip;
fetch('https://api64.ipify.org/?format=json')
.then(res => res.json())
.then(data => {
ip = data.ip;
});
};
const collect = (type, payload) => {
if (!ip) {
setTimeout(() => {
collect(type, payload);
}, 100);
return;
}
if (trackingDisabled()) return;
return fetch(endpoint, {
@ -193,6 +211,7 @@
};
/* Global */
getClientIPAddress();
if (!window.umami) {
const umami = eventValue => trackEvent(eventValue);