检查IP地址是否在AWS DynamoDB的IP范围内的最佳方法



我有一个AWS DynamoDB表,存储IP范围与pool_address,掩码和标识符(最初来自excel/csv),例如:Pool_address为100.150.200.0掩码为/22标识符为myrange

我大概有250个。

我试图使用Lambda来检查给定的IP地址是否在任何范围内,如果是,返回标识符。例如:IP 100.150.200.1返回'myrange'IP 100.150.201.1返回'myrange'IP 100.150.220.1返回FalseIP 100.150.199.1返回False

我知道PostreSQL有一些特定的数据类型(INET, CIDR),这将使这更容易,但是有什么好方法来完成与DynamoDB?

我自己找到了一个答案:因为我在Lambda代码中使用Python,所以我可以简单地使用ipAddress,如下面的答案所示:如何在Python中检查ip是否在网络中?

>>> import ipaddress
>>> ipaddress.ip_address('192.168.0.1') in ipaddress.ip_network('192.168.0.0/24')
True

最新更新