Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays nodejs修改服务器以只接受来自ip阵列的请求_Arrays_Node.js_Ip - Fatal编程技术网

Arrays nodejs修改服务器以只接受来自ip阵列的请求

Arrays nodejs修改服务器以只接受来自ip阵列的请求,arrays,node.js,ip,Arrays,Node.js,Ip,我有一个需要修改的TCP服务器,只接受来自预定义IP的请求。我的想法是创建一个数组,包含所有允许的IP,但是如何进行检查以及如何在现有代码周围进行检查 代码: 我认为这是做这项工作的错误工具。您应该使用系统防火墙配置对应用程序的访问。防火墙允许您: 以灵活的方式选择ip范围 e、 g阻塞和允许 使用不同的ip版本 使用不同的协议 更好地集成到IT基础架构中 但是,如果您无法访问防火墙,并且您需要一些快速且肮脏的东西,则可以通过对照列表检查ip地址,轻松启动列表中没有的连接: var allo

我有一个需要修改的TCP服务器,只接受来自预定义IP的请求。我的想法是创建一个数组,包含所有允许的IP,但是如何进行检查以及如何在现有代码周围进行检查

代码:


我认为这是做这项工作的错误工具。您应该使用系统防火墙配置对应用程序的访问。防火墙允许您:

  • 以灵活的方式选择ip范围 e、 g阻塞和允许
  • 使用不同的ip版本
  • 使用不同的协议
  • 更好地集成到IT基础架构中
但是,如果您无法访问防火墙,并且您需要一些快速且肮脏的东西,则可以通过对照列表检查ip地址,轻松启动列表中没有的连接:

var allow_list = ['10.1.1.1', '10.1.1.2'];

var net = require('net')
net.createServer(function (socket) {
    if (allow_list.indexOf(socket.remoteAddress) < 0) {       
       socket.destroy();
       return;
    }

    socket.setKeepAlive(true)

    // do stuff
}).listen(5000);

console.log("Server running at port 5000");
var allow_list=['10.1.1.1','10.1.1.2'];
var net=require('net')
net.createServer(函数(套接字){
if(allow_list.indexOf(socket.remoteAddress)<0){
socket.destroy();
返回;
}
socket.setKeepAlive(true)
//做事
}).听(5000);
log(“在端口5000运行的服务器”);

检查失败,似乎NodeJS显示了一个丑陋的IP地址版本。你知道怎么解决这个问题吗?例如,客户端连接时的输出:
connected::ffff:127.0.0.1
,正如您所看到的,它不仅显示IP地址,IP前面还有一些东西(::ffff:),然后将该IP放入允许列表中,即['::ffff:127.0.0.1','::ffff:10.1.1']。这些是ip6格式。但就像我说的,你最好通过防火墙控制访问。
var allow_list = ['10.1.1.1', '10.1.1.2'];

var net = require('net')
net.createServer(function (socket) {
    if (allow_list.indexOf(socket.remoteAddress) < 0) {       
       socket.destroy();
       return;
    }

    socket.setKeepAlive(true)

    // do stuff
}).listen(5000);

console.log("Server running at port 5000");