2017-08-01 82 views
1

我想确定我的heroku数据库存储在哪个AWS区域。我所拥有的就是IP地址。从IP地址确定AWS区域?

如何确定AWS区域?

+0

工作,如果它有一个公网IP,你可以看看这个:http://docs.aws.amazon.com/general/latest/ GR/AWS-IP-ranges.html –

回答

4

下载JSON文件AWS IP范围:AWS IP Address Ranges

它包含CIDR秒。你可能想写一个简单的脚本,并检查IP是否落入任何CIDRs,然后检索相应的区域。这是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'