1
私のherokuデータベースが格納されているAWSリージョンを特定しようとしています。私が持っているのはIPアドレスだけです。IPアドレスからAWS地域を判別しますか?
どのようにAWS領域を特定できますか?
私のherokuデータベースが格納されているAWSリージョンを特定しようとしています。私が持っているのはIPアドレスだけです。IPアドレスからAWS地域を判別しますか?
どのようにAWS領域を特定できますか?
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'
では動作しません。http://docs.aws.amazon.com/general/latest/ gr/aws-ip-ranges.html –