我正在尝试确定存储我的 heroku 数据库的 AWS 区域。我所拥有的只是IP地址。
如何确定 AWS 区域?
请您参考如下方法:
下载 JSON 文件 AWS IP 范围:AWS IP Address Ranges
它包含 CIDR。您可能想编写一个简单的脚本并检查 IP 是否属于任何 CIDR,然后检索相应的区域。这是 JSON 的样子:
{
"ip_prefix": "13.56.0.0/16",
"region": "us-west-1",
"service": "AMAZON"
},
这是 Python3 代码,用于在给定 IP 的情况下查找区域。假设从 AWS 下载的 ip-ranges.json 文件位于当前目录中。不适用于 Python 2.7
from ipaddress import ip_network, ip_address
import json
def find_aws_region(ip):
ip_json = json.load(open('ip-ranges.json'))
prefixes = ip_json['prefixes']
my_ip = ip_address(ip)
region = 'Unknown'
for prefix in prefixes:
if my_ip in ip_network(prefix['ip_prefix']):
region = prefix['region']
break
return region
测试
>>> find_aws_region('54.153.41.72')
'us-west-1'
>>> find_aws_region('54.250.58.207')
'ap-northeast-1'
>>> find_aws_region('154.250.58.207')
'Unknown'
