13 lines
389 B
JavaScript
13 lines
389 B
JavaScript
export function getRealIP(request, server) {
|
|
let ip = request.headers.get('x-forwarded-for') || request.headers.get('x-real-ip');
|
|
if (ip?.includes(',')) ip = ip.split(',')[0].trim();
|
|
if (!ip && server) {
|
|
ip = server.remoteAddress;
|
|
}
|
|
if (!ip) {
|
|
const url = new URL(request.url);
|
|
ip = url.hostname;
|
|
}
|
|
if (ip?.startsWith('::ffff:')) ip = ip.slice(7);
|
|
return ip;
|
|
}
|