节点 - 解析 AWS IP 范围和块



我看到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"

最新更新