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