从IP地址确定AWS区域?

时间:2017-08-01 15:26:27

标签: python amazon-web-services

我正在尝试确定我的heroku数据库存储在的AWS区域。我只有IP地址。

如何确定AWS区域?

1 个答案:

答案 0 :(得分:4)

下载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'