Cuando un cliente se conecta al servidor HTTP del 'connection
' evento se emite y el argumento proporcionado a la devolución de llamada es una corriente de tipo net.Socket
que tiene un atributo llamado ' remoteAddress
'. Del mismo modo, cada solicitud HTTP pasado a su solicitud oyente también tiene una referencia al objeto de conexión:
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);
En cuanto a la autenticación a través de credenciales incrustadas en la URL, no creo que esta forma es fiable como some web browsers do not pass on the information en el HTTP solicitud (IE y Chrome al menos). Es mejor implementar un esquema de autenticación basado en estándares HTTP como Basic access auth o Digest access auth.
¿Cómo suplantación de IP? – ch3ll0v3k