3

我使用带有 node.js 和 Net 模块的服务器的非常基本的脚本......我从 IP 接收到可疑连接。我可以添加我不想连接的所有 ip... 它是自动的:当用户不进行身份验证时,我将他的 IP 推送到一个数组中并关闭套接字。如果他重新连接我正在验证他的 IP 是否在数组中,如果为真,我再次关闭套接字。如何在该 IP 连接到服务器之前验证此黑名单阵列?方法是什么?

4

1 回答 1

11

理想的解决方案是在 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');
于 2013-06-18T22:28:08.123 回答