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

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 в NGINX - https://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