Si están restringiendo el acceso al servidor completo por dirección de red, es mejor poner esas reglas en su firewall. Si desea manejarlo en la capa de aplicación por alguna razón (facilidad de configuración, autorización dinámica, etc.), entonces es mejor hacerlo inmediatamente después de la conexión en lugar de esperar una solicitud HTTP.
Node.js 'http.Server emits a connection
event que puede usar para determinar la dirección remota y cancelar la conexión antes (o durante) la solicitud HTTP real. Este código no ha sido probado pero debe comenzar:
var server = http.createServer(function (req, res) {
// Your normal request handling goes here
});
server.on('connection', function (sock) {
console.log(sock.remoteAddress);
// Put your logic for what to do next based on that remote address here
});
server.listen(80);
Muy buen punto. Actualmente utilizo un sistema donde registro las direcciones IP de nodejs y tengo un script de shell que se ejecuta periódicamente para actualizar iptables respectivamente. Definitivamente tienes razón cuando dijiste 'poner esas reglas en tu firewall, antes de que llegue a la capa de aplicación'. –