我看到AWS
发布了json
个文件及其所有IP范围here(实际JSON HERE)
我正在考虑使用这个json
文件来检查我的节点应用程序中的每个传入连接,但首先我想知道为每个请求循环它是否会花费太多开销?
其次,我不确定如何解决这个问题,因为许多IP范围的格式不同,例如。
43.250.192.0/24
46.51.128.0/18
27.0.0.0/22
我不太清楚它们的后缀是什么意思。
有人有类似的东西吗?
答案 0 :(得分:2)
您的第一个问题是正确的 - 为每个请求循环访问Amazon的IP需要花费很多开销。这应该在防火墙处理。
尽管如此,亚马逊提供的ip_prefix
字段可用于确保该子网内存在有效的IP地址。 node-ip模块可以帮助解决这个问题。它具有cidrSubnet
功能,可用于测试用户IP的前缀。见下面的coffeescript。
ip = require 'node-ip'
amazonIPs = require 'amazonIPs.json'
someUsersIP = '192.168.1.190'
for prefix in amazonIPs.prefix
if ip.cidrSubnet(prefix).contains(someUsersIP)
console.log "#{someUsersIP} is within the #{prefix} range"