api: use request-ip
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
"pino": "^8.17.2",
|
"pino": "^8.17.2",
|
||||||
"pino-pretty": "^10.3.1",
|
"pino-pretty": "^10.3.1",
|
||||||
"ramda": "^0.29.1",
|
"ramda": "^0.29.1",
|
||||||
|
"request-ip": "^3.3.0",
|
||||||
"sharp": "^0.33.2",
|
"sharp": "^0.33.2",
|
||||||
"sqlstring": "^2.3.3",
|
"sqlstring": "^2.3.3",
|
||||||
"ua-parser-js": "^1.0.37",
|
"ua-parser-js": "^1.0.37",
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
"@openpanel/sdk": "workspace:*",
|
"@openpanel/sdk": "workspace:*",
|
||||||
"@openpanel/tsconfig": "workspace:*",
|
"@openpanel/tsconfig": "workspace:*",
|
||||||
"@types/ramda": "^0.29.6",
|
"@types/ramda": "^0.29.6",
|
||||||
|
"@types/request-ip": "^0.0.41",
|
||||||
"@types/sqlstring": "^2.3.2",
|
"@types/sqlstring": "^2.3.2",
|
||||||
"@types/ua-parser-js": "^0.7.39",
|
"@types/ua-parser-js": "^0.7.39",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ export async function postEvent(
|
|||||||
country: event?.country || geo.country || '',
|
country: event?.country || geo.country || '',
|
||||||
city: event?.city || geo.city || '',
|
city: event?.city || geo.city || '',
|
||||||
region: event?.region || geo.region || '',
|
region: event?.region || geo.region || '',
|
||||||
continent: event?.continent ?? '',
|
continent: event?.continent || geo.continent || '',
|
||||||
os: event?.os ?? '',
|
os: event?.os ?? '',
|
||||||
osVersion: event?.osVersion ?? '',
|
osVersion: event?.osVersion ?? '',
|
||||||
browser: event?.browser ?? '',
|
browser: event?.browser ?? '',
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { FastifyRequest } from 'fastify';
|
import type { FastifyRequest } from 'fastify';
|
||||||
|
import requestIp from 'request-ip';
|
||||||
|
|
||||||
import { logger } from './logger';
|
import { logger } from './logger';
|
||||||
|
|
||||||
@@ -26,15 +27,7 @@ const geo: GeoLocation = {
|
|||||||
const ignore = ['127.0.0.1', '::1'];
|
const ignore = ['127.0.0.1', '::1'];
|
||||||
|
|
||||||
export function getClientIp(req: FastifyRequest) {
|
export function getClientIp(req: FastifyRequest) {
|
||||||
if (req.headers['cf-connecting-ip']) {
|
return requestIp.getClientIp(req);
|
||||||
return String(req.headers['cf-connecting-ip']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (req.headers['x-forwarded-for']) {
|
|
||||||
return String(req.headers['x-forwarded-for']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function parseIp(ip?: string): Promise<GeoLocation> {
|
export async function parseIp(ip?: string): Promise<GeoLocation> {
|
||||||
|
|||||||
@@ -86,7 +86,6 @@
|
|||||||
"react-use-websocket": "^4.7.0",
|
"react-use-websocket": "^4.7.0",
|
||||||
"react-virtualized-auto-sizer": "^1.0.22",
|
"react-virtualized-auto-sizer": "^1.0.22",
|
||||||
"recharts": "^2.12.0",
|
"recharts": "^2.12.0",
|
||||||
"request-ip": "^3.3.0",
|
|
||||||
"short-unique-id": "^5.0.3",
|
"short-unique-id": "^5.0.3",
|
||||||
"slugify": "^1.6.6",
|
"slugify": "^1.6.6",
|
||||||
"sonner": "^1.4.0",
|
"sonner": "^1.4.0",
|
||||||
@@ -109,7 +108,6 @@
|
|||||||
"@types/react": "^18.2.20",
|
"@types/react": "^18.2.20",
|
||||||
"@types/react-dom": "^18.2.7",
|
"@types/react-dom": "^18.2.7",
|
||||||
"@types/react-syntax-highlighter": "^15.5.11",
|
"@types/react-syntax-highlighter": "^15.5.11",
|
||||||
"@types/request-ip": "^0.0.41",
|
|
||||||
"@types/sqlstring": "^2.3.2",
|
"@types/sqlstring": "^2.3.2",
|
||||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||||
"@typescript-eslint/parser": "^6.21.0",
|
"@typescript-eslint/parser": "^6.21.0",
|
||||||
|
|||||||
12
pnpm-lock.yaml
generated
12
pnpm-lock.yaml
generated
@@ -62,6 +62,9 @@ importers:
|
|||||||
ramda:
|
ramda:
|
||||||
specifier: ^0.29.1
|
specifier: ^0.29.1
|
||||||
version: 0.29.1
|
version: 0.29.1
|
||||||
|
request-ip:
|
||||||
|
specifier: ^3.3.0
|
||||||
|
version: 3.3.0
|
||||||
sharp:
|
sharp:
|
||||||
specifier: ^0.33.2
|
specifier: ^0.33.2
|
||||||
version: 0.33.2
|
version: 0.33.2
|
||||||
@@ -93,6 +96,9 @@ importers:
|
|||||||
'@types/ramda':
|
'@types/ramda':
|
||||||
specifier: ^0.29.6
|
specifier: ^0.29.6
|
||||||
version: 0.29.10
|
version: 0.29.10
|
||||||
|
'@types/request-ip':
|
||||||
|
specifier: ^0.0.41
|
||||||
|
version: 0.0.41
|
||||||
'@types/sqlstring':
|
'@types/sqlstring':
|
||||||
specifier: ^2.3.2
|
specifier: ^2.3.2
|
||||||
version: 2.3.2
|
version: 2.3.2
|
||||||
@@ -339,9 +345,6 @@ importers:
|
|||||||
recharts:
|
recharts:
|
||||||
specifier: ^2.12.0
|
specifier: ^2.12.0
|
||||||
version: 2.12.0(react-dom@18.2.0)(react@18.2.0)
|
version: 2.12.0(react-dom@18.2.0)(react@18.2.0)
|
||||||
request-ip:
|
|
||||||
specifier: ^3.3.0
|
|
||||||
version: 3.3.0
|
|
||||||
short-unique-id:
|
short-unique-id:
|
||||||
specifier: ^5.0.3
|
specifier: ^5.0.3
|
||||||
version: 5.0.3
|
version: 5.0.3
|
||||||
@@ -403,9 +406,6 @@ importers:
|
|||||||
'@types/react-syntax-highlighter':
|
'@types/react-syntax-highlighter':
|
||||||
specifier: ^15.5.11
|
specifier: ^15.5.11
|
||||||
version: 15.5.11
|
version: 15.5.11
|
||||||
'@types/request-ip':
|
|
||||||
specifier: ^0.0.41
|
|
||||||
version: 0.0.41
|
|
||||||
'@types/sqlstring':
|
'@types/sqlstring':
|
||||||
specifier: ^2.3.2
|
specifier: ^2.3.2
|
||||||
version: 2.3.2
|
version: 2.3.2
|
||||||
|
|||||||
Reference in New Issue
Block a user