2017-08-01 18 views
1

私のherokuデータベースが格納されているAWSリージョンを特定しようとしています。私が持っているのはIPアドレスだけです。IPアドレスからAWS地域を判別しますか?

どのようにAWS領域を特定できますか?

+0

では動作しません。http://docs.aws.amazon.com/general/latest/ gr/aws-ip-ranges.html –

答えて

4

JSONファイルAWS IPをダウンロード範囲:AWS IP Address Ranges

それはCIDR Sが含まれています。簡単なスクリプトを書いて、IPがCIDRのいずれかに該当するかどうかを確認し、対応する領域を取得することができます。これはJSONがどのように見えるかです:

{ 
    "ip_prefix": "13.56.0.0/16", 
    "region": "us-west-1", 
    "service": "AMAZON" 
}, 

ここで地域を見つけるためPython3コードはIP与えられた、あります。 AWSからダウンロードしたip-ranges.jsonファイルが現在のディレクトリにあると仮定します。それはパブリックIPを持っている場合、あなたはこれを見てすることができます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' 
関連する問題