是否有一种方法可以防止某些IP连接到我的Node.js ('net')服务器

Is there a way to prevent certain IP to connects with my Node.js ('net') server?

本文关键字:我的 连接 Node js IP 服务器 net 一种 方法 是否      更新时间:2023-09-26

我使用一个非常基本的服务器脚本与node.js和。Net模块…我收到来自IP的可疑连接。我可以添加所有我不想连接的ip…它是自动的:当用户不授权时,我将他的IP推入数组并关闭套接字。如果他重新连接我验证他的IP是否在数组中,如果为真,我再次关闭套接字。如何在IP连接到服务器之前验证这个黑名单数组?怎么走?

理想的解决方案是在IP到达Node.js之前阻止它。或者至少让Linux阻止它——请看下面的例子。

但是要回答你的具体问题,你可以这样做:

var http = require('http');
http.createServer(function (req, res) {
    var request_ip = req.ip 
            || req.connection.remoteAddress 
            || req.socket.remoteAddress 
            || req.connection.socket.remoteAddress;
    if (request_ip == '86.75.30.9') // put the IP address here
    {
        // make them wait a bit for a response (optional)
        setTimeout(function() {
            res.end();
        }, 5000);
    }
}).listen(80, '127.0.0.1');