Skip to main content
 首页 » 编程设计

python之从 IP 地址确定 AWS 区域

2025年05月04日22lyj

我正在尝试确定存储我的 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'