Иногда нужно проверять 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