Когда клиент подключается к вашему HTTP-серверу, генерируется событие 'connection
', а аргументом для обратного вызова является поток типа net.Socket
, который имеет атрибут с именем 'remoteAddress
'.Точно так же каждый HTTP-запрос, передаваемый вашему прослушивателю запросов, также имеет ссылку на объект подключения:
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello ' + req.connection.remoteAddress + '!');
// Client address in request -----^
});
server.on('connection', function(sock) {
console.log('Client connected from ' + sock.remoteAddress);
// Client address at time of connection ----^
});
server.listen(9797);
Что касается аутентификации с использованием встроенных учетных данных в URL-адресе, я не думаю, что эта форма является надежной, поскольку некоторые веб-браузеры не передают информацию в запросе HTTP (по крайней мере, IE и Chrome).Вам лучше реализовать схему аутентификации, основанную на стандартах HTTP, такую как Базовый аутентификатор доступа или Аутентификация доступа к дайджесту .