NodeJS | Как получить IP-адрес клиента с которого пришёл запрос?

NodeJS | Как получить IP-адрес клиента с которого пришёл запрос?

Иногда нужно проверять IP-адрес клиента, с которого был отправлен запрос на наш сервер приложения (сайта). В некоторых случаях это необходимо для блокировки доступа к ресурсу.

Например IP-адрес может проявлять негативную активность или как-то нагружать работоспособность сервера. Принудительное добавление в «чёрный список» может временно решить данную проблему.

Для вычисления IP-адреса существует несколько сценариев:

let ip_adress = (req.headers['x-forwarded-for'] || '').split(',').pop() ||
req.headers["x-real-ip"] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress

 

Информационные ссылки

RFC 7239 | HTTP-расширение «Forwarded» (Переадресовано)

Стандарт RFC 7239 PDF оригинал — Forwarded HTTP Extension

Использование заголовка Forwarded в NGINXhttps://www.nginx.com/resources/wiki/start/topics/examples/forwarded/

NGINX — Модуль «Модуль ngx_http_realip_module» — https://nginx.org/ru/docs/http/ngx_http_realip_module.html

Стандарт NodeJS — Раздел «Class: http.ClientRequest» — https://nodejs.org/dist/latest-v18.x/docs/api/http.html#class-httpclientrequest

Стандарт NodeJS — Раздел «Class: http.IncomingMessage» — https://nodejs.org/dist/latest-v18.x/docs/api/http.html#class-httpincomingmessage