节点 - 解析AWS IP范围和阻止

时间:2016-01-13 17:28:12

标签: json node.js amazon-web-services

我看到AWS发布了json个文件及其所有IP范围here(实际JSON HERE

我正在考虑使用这个json文件来检查我的节点应用程序中的每个传入连接,但首先我想知道为每个请求循环它是否会花费太多开销?

其次,我不确定如何解决这个问题,因为许多IP范围的格式不同,例如。

43.250.192.0/24
46.51.128.0/18
27.0.0.0/22

我不太清楚它们的后缀是什么意思。

有人有类似的东西吗?

1 个答案:

答案 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"