TGViewer
Node.js Recipes Node.js Recipes @node_recipes · 3.1K subscribers
Post #51 801
Как узнать ip пользователя в Node.js?
#package #nestjs

TL;DR Знайте заголовок, который использует ваш LB или используйте request-ip.

Хорошей практикой является логирование ip адрес, с которого идет запрос. В определенных случаях в зависимости от ip может строиться логика работы приложения. Наивный способ, приведенный в #nodejs документации выглядит так:

const http = require('http');
const server = http.createServer((req, res) => {
const ip = res.socket.remoteAddress;
const port = res.socket.remotePort;
res.end(`Your IP address is ${ip} and your source port is ${port}.`);
}).listen(3000);

В реально проекте данный способ не будет работать. Node.js процесс будет находиться за load balancer-ом. В req.socket.remoteAddress будет находиться именно его ip, а не откуда пришел запрос. Оригинальный ip можно узнать по заголовку X-Forwarded-For или его аналогам (зависит от используемого LB).

Если у вас нет информации, как будет развернут ваш код, то стоит использовать пакет request-ip. В его коде идет перебор большинства заголовков в поисках ip.

Если же вы знаете используемый LB, то знаете имя заголовка. Вот пример для #nestjs декоратора:

import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { Request } from 'express';

export const UserIp = createParamDecorator((data: unknown, context: ExecutionContext) => {
const req = context.switchToHttp().getRequest<Request>();
const forwardedFor = req.header('x-forwarded-for');
if (!forwardedFor) return req.connection.remoteAddress;

return forwardedFor.split(',')[0];
});
More from @node_recipes
  1. Jan 5, 2026По всьому світу проходять Cursor Meetups, де локальні спільноти діляться досвідом використ…
  2. Jan 5, 2026Думки на вихідних: Full Stack Learning Подивився останнє відео Сергія Немчинського про фул…
  3. Dec 31, 2025Залишаються лічені години 2025-го. І будьмо чесними: сам перехід на 2026-й нічого автомати…
  4. Dec 25, 2025Моє відкриття 2025 року, як доповідача, це Napkin.ai. На малюнку приклад того, як Napkin г…
  5. Dec 23, 2025А ось й ChatGPT додав 2025 review feature. Авжеж в мене half coded Nest.js app, як ще :)
  6. Dec 23, 2025Моє технічне відкриття 2025 року — centrifugal.dev У 2025-му я багато працював із реальним…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →