我看到AWS
在这里发布了一个包含所有IP范围的json
文件(实际JSON在这里)
我正在考虑使用此json
文件来检查我的节点应用程序中的每个传入连接,但首先我想知道为每个请求循环遍历它是否会产生太大的开销?
其次,我不确定如何做到这一点,因为许多 IP 范围的格式不同,例如。
43.250.192.0/24
46.51.128.0/18
27.0.0.0/22
我不太确定它们的后缀是什么意思。
有没有人穿类似的东西?
您的第一个担忧是正确的 - 为每个请求循环访问亚马逊的 IP 会产生很大的开销。这应该在防火墙上处理。
尽管如此,亚马逊提供的ip_prefix
字段可用于确保该子网中存在有效的 IP 地址。node-ip 模块可以帮助解决这个问题。它具有cidrSubnet
函数,可用于针对用户的 IP 测试前缀。请参阅下面的咖啡脚本。
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"