IP адрес клиента в websocket
Есть простой серверный и не менее простой клиентский скрипты. Суть в том, что я хочу получать IP-адрес клиента при подключении к ws-серверу. Каким образом это можно реализовать?
const WebSocket = require('ws');
const wsServer = new WebSocket.Server({
port: 3001
});
var clients = new Set();
wsServer.on('connection', async ws => {
//some code
});
var ws = new WebSocket('ws://localhost:3001');
Ответы (1 шт):
Автор решения: Leonid
→ Ссылка
Вот, что отвечает сам ws)):
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws, req) {
const ip = req.connection.remoteAddress;
});
Когда ваш сервер стоит за NGINX и подобными прокси-серверами стандартом де-факто является запись в заголовок X-Forwarded-For:
wss.on('connection', function connection(ws, req) {
const ip = req.headers['x-forwarded-for'].split(/\s*,\s*/)[0];
});