В Node.js, чтобы получить IP-адрес пользователя, вы можете использовать HTTP-сервер или Express.js. Рассмотрим оба варианта.
1. HTTP-сервер:
const http = require('http'); const server = http.createServer((req, res) => { const ip = req.connection.remoteAddress; console.log('IP адрес клиента:', ip); // Дальнейшая обработка запроса... }); server.listen(3000, () => { console.log('Сервер запущен на порту 3000'); });
В этом примере мы создаем HTTP-сервер и обрабатываем каждый запрос с помощью колбэка. Объект req
предоставляет доступ к данным запроса, а req.connection.remoteAddress
возвращает IP-адрес клиента.
2. Express.js:
В Express.js можно использовать промежуточное ПО req.ip
для получения IP-адреса клиента. Вот пример:
const express = require('express'); const app = express(); app.use((req, res, next) => { const ip = req.ip; console.log('IP адрес клиента:', ip); next(); }); app.get('/', (req, res) => { res.send('Привет, мир!'); }); app.listen(3000, () => { console.log('Сервер запущен на порту 3000'); });
В этом примере мы используем app.use
для регистрации промежуточного ПО, которое выводит IP-адрес клиента в консоль перед выполнением следующей функции промежуточного ПО. Метод req.ip
предоставляет IP-адрес клиента.
Рассмотренные примеры демонстрируют базовый способ получить IP-адрес пользователя в Node.js. Однако стоит отметить, что IP-адрес может быть ложным или измененным, поэтому не следует полагаться на его абсолютную достоверность для идентификации клиента.