I have been spending a lot of time designing a Hybrid Cloud that consists of Openstack and public cloud platforms. In particular I have been spending a lot of time designing the AWS portion of the Hybrid Cloud Platform. Today I found myself continually needing to look up AWS public address space and then parsing out regions & services. Then I remembered something a mentor of mine told me…
if you are going to do something more than once, there is probably value in automating it.
I love writing command line tools and thus a short Python script was born. Since I rarely share Python code, even though I didn’t spend a lot time on this, and I certainly didn’t optimize it for DRY etc. I am sharing it anyway for others to use, enjoy and hack on,
but mainly to learn, which is…The entire purpose of the Tuxlabs site
I should mention I have strong views about when to use Python vs. Go a language I find myself writing in more and more and this tool falls under my rules for things that I should write in Go. So later as a follow up I will likely re-code this in Go and post the code for review & learning. For now here’s the Python code, enjoy !
Listing all IP Ranges
(env) ➜ aws python aws-ranges.py
region ip_prefix service
-------------- ----------------- --------------------
us-east-1 23.20.0.0/14 AMAZON
ap-northeast-1 27.0.0.0/22 AMAZON
ap-southeast-1 43.250.192.0/24 AMAZON
ap-southeast-1 43.250.193.0/24 AMAZON
eu-west-1 46.51.128.0/18 AMAZON
eu-west-1 46.51.192.0/20 AMAZON
ap-southeast-1 46.51.216.0/21 AMAZON
ap-northeast-1 46.51.224.0/19 AMAZON
eu-west-1 46.137.0.0/17 AMAZON
eu-west-1 46.137.128.0/18 AMAZON
ap-southeast-1 46.137.192.0/19 AMAZON
ap-southeast-1 46.137.224.0/19 AMAZON
us-east-1 50.16.0.0/15 AMAZON
us-west-1 50.18.0.0/16 AMAZON
us-east-1 50.19.0.0/16 AMAZON
us-west-2 50.112.0.0/16 AMAZON
us-east-1 52.0.0.0/15 AMAZON
us-east-1 52.2.0.0/15 AMAZON
us-east-1 52.4.0.0/14 AMAZON
us-west-1 52.8.0.0/16 AMAZON
us-west-1 52.9.0.0/16 AMAZON
us-west-2 52.10.0.0/15 AMAZON
us-west-2 52.12.0.0/15 AMAZON
eu-west-1 52.16.0.0/15 AMAZON
eu-west-1 52.18.0.0/15 AMAZON
us-east-1 52.20.0.0/14 AMAZON
us-west-2 52.24.0.0/14 AMAZON
eu-central-1 52.28.0.0/16 AMAZON
eu-central-1 52.29.0.0/16 AMAZON
eu-west-1 52.30.0.0/15 AMAZON
us-west-2 52.32.0.0/14 AMAZON
us-west-2 52.36.0.0/14 AMAZON
us-west-2 52.40.0.0/14 AMAZON
eu-west-1 52.48.0.0/14 AMAZON
us-west-1 52.52.0.0/15 AMAZON
eu-central-1 52.58.0.0/15 AMAZON
ap-southeast-2 52.62.0.0/15 AMAZON
ap-southeast-2 52.64.0.0/17 AMAZON
ap-southeast-2 52.64.128.0/17 AMAZON
ap-southeast-2 52.65.0.0/16 AMAZON
sa-east-1 52.67.0.0/16 AMAZON
ap-northeast-1 52.68.0.0/15 AMAZON
us-east-1 52.70.0.0/15 AMAZON
us-east-1 52.72.0.0/15 AMAZON
ap-southeast-1 52.74.0.0/16 AMAZON
ap-southeast-1 52.76.0.0/17 AMAZON
ap-southeast-1 52.76.128.0/17 AMAZON
ap-southeast-1 52.77.0.0/16 AMAZON
ap-northeast-2 52.79.0.0/16 AMAZON
GLOBAL 52.84.0.0/15 AMAZON
us-east-1 52.86.0.0/15 AMAZON
us-west-2 52.88.0.0/15 AMAZON
us-east-1 52.90.0.0/15 AMAZON
ap-northeast-2 52.92.0.0/20 AMAZON
us-east-1 52.92.16.0/20 AMAZON
us-west-2 52.92.32.0/22 AMAZON
sa-east-1 52.92.39.0/24 AMAZON
eu-west-1 52.92.40.0/21 AMAZON
us-west-1 52.92.48.0/22 AMAZON
ap-southeast-2 52.92.52.0/22 AMAZON
ap-southeast-1 52.92.56.0/22 AMAZON
ap-northeast-1 52.92.60.0/22 AMAZON
sa-east-1 52.92.64.0/22 AMAZON
eu-central-1 52.92.68.0/22 AMAZON
sa-east-1 52.92.72.0/22 AMAZON
us-gov-west-1 52.92.252.0/22 AMAZON
eu-west-1 52.93.0.0/24 AMAZON
us-east-1 52.93.1.0/24 AMAZON
eu-west-1 52.93.2.0/24 AMAZON
us-east-1 52.93.3.0/24 AMAZON
ap-southeast-1 52.93.8.0/22 AMAZON
us-east-1 52.94.0.0/22 AMAZON
eu-west-1 52.94.5.0/24 AMAZON
ap-northeast-2 52.94.6.0/24 AMAZON
sa-east-1 52.94.7.0/24 AMAZON
ap-northeast-1 52.94.8.0/24 AMAZON
us-gov-west-1 52.94.9.0/24 AMAZON
us-west-2 52.94.10.0/24 AMAZON
ap-southeast-1 52.94.11.0/24 AMAZON
us-west-1 52.94.12.0/24 AMAZON
ap-southeast-2 52.94.13.0/24 AMAZON
us-west-1 52.94.14.0/24 AMAZON
us-east-1 52.94.254.0/23 AMAZON
ap-northeast-1 52.95.30.0/23 AMAZON
ap-northeast-1 52.95.34.0/24 AMAZON
ap-southeast-1 52.95.35.0/24 AMAZON
ap-southeast-2 52.95.36.0/22 AMAZON
us-east-1 52.95.48.0/22 AMAZON
us-east-1 52.95.52.0/22 AMAZON
ap-northeast-1 52.95.56.0/22 AMAZON
eu-west-1 52.95.60.0/24 AMAZON
eu-west-1 52.95.61.0/24 AMAZON
us-east-1 52.95.62.0/24 AMAZON
us-east-1 52.95.63.0/24 AMAZON
ap-northeast-2 52.95.192.0/20 AMAZON
ap-southeast-1 52.95.212.0/22 AMAZON
sa-east-1 52.95.240.0/24 AMAZON
ap-southeast-2 52.95.241.0/24 AMAZON
ap-southeast-1 52.95.242.0/24 AMAZON
ap-northeast-1 52.95.243.0/24 AMAZON
eu-west-1 52.95.244.0/24 AMAZON
us-east-1 52.95.245.0/24 AMAZON
us-west-1 52.95.246.0/24 AMAZON
us-west-2 52.95.247.0/24 AMAZON
eu-central-1 52.95.248.0/24 AMAZON
cn-north-1 52.95.249.0/24 AMAZON
ap-northeast-2 52.95.252.0/24 AMAZON
sa-east-1 52.95.255.0/28 AMAZON
ap-southeast-2 52.95.255.16/28 AMAZON
ap-southeast-1 52.95.255.32/28 AMAZON
ap-northeast-1 52.95.255.48/28 AMAZON
eu-west-1 52.95.255.64/28 AMAZON
us-east-1 52.95.255.80/28 AMAZON
us-west-1 52.95.255.96/28 AMAZON
us-west-2 52.95.255.112/28 AMAZON
eu-central-1 52.95.255.128/28 AMAZON
cn-north-1 52.95.255.144/28 AMAZON
ap-northeast-1 52.192.0.0/15 AMAZON
ap-northeast-1 52.196.0.0/14 AMAZON
us-east-1 52.200.0.0/13 AMAZON
eu-west-1 52.208.0.0/13 AMAZON
ap-southeast-1 52.220.0.0/15 AMAZON
ap-northeast-1 54.64.0.0/15 AMAZON
ap-southeast-2 54.66.0.0/16 AMAZON
us-west-1 54.67.0.0/16 AMAZON
us-west-2 54.68.0.0/14 AMAZON
eu-west-1 54.72.0.0/15 AMAZON
eu-west-1 54.74.0.0/15 AMAZON
eu-west-1 54.76.0.0/15 AMAZON
eu-west-1 54.78.0.0/16 AMAZON
ap-southeast-2 54.79.0.0/16 AMAZON
us-east-1 54.80.0.0/13 AMAZON
us-east-1 54.88.0.0/14 AMAZON
ap-northeast-1 54.92.0.0/17 AMAZON
us-east-1 54.92.128.0/17 AMAZON
eu-central-1 54.93.0.0/16 AMAZON
sa-east-1 54.94.0.0/16 AMAZON
ap-northeast-1 54.95.0.0/16 AMAZON
us-east-1 54.144.0.0/14 AMAZON
us-west-2 54.148.0.0/15 AMAZON
ap-northeast-1 54.150.0.0/16 AMAZON
us-west-1 54.151.0.0/17 AMAZON
ap-southeast-1 54.151.128.0/17 AMAZON
us-east-1 54.152.0.0/16 AMAZON
us-west-1 54.153.0.0/17 AMAZON
ap-southeast-2 54.153.128.0/17 AMAZON
eu-west-1 54.154.0.0/16 AMAZON
eu-west-1 54.155.0.0/16 AMAZON
us-east-1 54.156.0.0/14 AMAZON
us-east-1 54.160.0.0/13 AMAZON
ap-northeast-1 54.168.0.0/16 AMAZON
ap-southeast-1 54.169.0.0/16 AMAZON
eu-west-1 54.170.0.0/15 AMAZON
us-east-1 54.172.0.0/15 AMAZON
us-east-1 54.174.0.0/15 AMAZON
us-west-1 54.176.0.0/15 AMAZON
ap-northeast-1 54.178.0.0/16 AMAZON
ap-southeast-1 54.179.0.0/16 AMAZON
GLOBAL 54.182.0.0/16 AMAZON
us-west-1 54.183.0.0/16 AMAZON
us-west-2 54.184.0.0/13 AMAZON
GLOBAL 54.192.0.0/16 AMAZON
us-west-1 54.193.0.0/16 AMAZON
eu-west-1 54.194.0.0/15 AMAZON
us-east-1 54.196.0.0/15 AMAZON
us-east-1 54.198.0.0/16 AMAZON
ap-northeast-1 54.199.0.0/16 AMAZON
us-west-2 54.200.0.0/15 AMAZON
us-west-2 54.202.0.0/15 AMAZON
us-east-1 54.204.0.0/15 AMAZON
ap-southeast-2 54.206.0.0/16 AMAZON
sa-east-1 54.207.0.0/16 AMAZON
us-east-1 54.208.0.0/15 AMAZON
us-east-1 54.210.0.0/15 AMAZON
us-west-2 54.212.0.0/15 AMAZON
us-west-2 54.214.0.0/16 AMAZON
us-west-1 54.215.0.0/16 AMAZON
eu-west-1 54.216.0.0/15 AMAZON
us-west-2 54.218.0.0/16 AMAZON
us-west-1 54.219.0.0/16 AMAZON
eu-west-1 54.220.0.0/16 AMAZON
us-east-1 54.221.0.0/16 AMAZON
cn-north-1 54.222.0.0/19 AMAZON
cn-north-1 54.222.128.0/17 AMAZON
cn-north-1 54.223.0.0/16 AMAZON
us-east-1 54.224.0.0/15 AMAZON
us-east-1 54.226.0.0/15 AMAZON
eu-west-1 54.228.0.0/16 AMAZON
eu-west-1 54.229.0.0/16 AMAZON
GLOBAL 54.230.0.0/16 AMAZON
us-east-1 54.231.0.0/17 AMAZON
eu-west-1 54.231.128.0/19 AMAZON
us-west-2 54.231.160.0/19 AMAZON
eu-central-1 54.231.192.0/20 AMAZON
cn-north-1 54.231.208.0/20 AMAZON
ap-northeast-1 54.231.224.0/21 AMAZON
us-west-1 54.231.232.0/21 AMAZON
ap-southeast-1 54.231.240.0/22 AMAZON
us-east-1 54.231.244.0/22 AMAZON
ap-southeast-2 54.231.248.0/22 AMAZON
ap-southeast-2 54.231.252.0/24 AMAZON
sa-east-1 54.231.253.0/24 AMAZON
us-gov-west-1 54.231.254.0/24 AMAZON
sa-east-1 54.232.0.0/16 AMAZON
sa-east-1 54.233.0.0/18 AMAZON
sa-east-1 54.233.64.0/18 AMAZON
sa-east-1 54.233.128.0/17 AMAZON
us-east-1 54.234.0.0/15 AMAZON
us-east-1 54.236.0.0/15 AMAZON
ap-northeast-1 54.238.0.0/16 AMAZON
us-west-2 54.239.2.0/23 AMAZON
eu-central-1 54.239.4.0/22 AMAZON
us-east-1 54.239.8.0/21 AMAZON
us-east-1 54.239.16.0/20 AMAZON
eu-west-1 54.239.32.0/21 AMAZON
us-west-2 54.239.48.0/22 AMAZON
ap-northeast-1 54.239.52.0/23 AMAZON
eu-central-1 54.239.54.0/23 AMAZON
eu-central-1 54.239.56.0/21 AMAZON
ap-northeast-1 54.239.96.0/24 AMAZON
us-east-1 54.239.98.0/24 AMAZON
eu-west-1 54.239.99.0/24 AMAZON
eu-west-1 54.239.100.0/23 AMAZON
us-east-1 54.239.104.0/23 AMAZON
us-east-1 54.239.108.0/22 AMAZON
eu-west-1 54.239.114.0/24 AMAZON
ap-northeast-2 54.239.116.0/22 AMAZON
ap-northeast-2 54.239.120.0/21 AMAZON
GLOBAL 54.239.128.0/18 AMAZON
GLOBAL 54.239.192.0/19 AMAZON
GLOBAL 54.240.128.0/18 AMAZON
ap-southeast-2 54.240.192.0/22 AMAZON
us-east-1 54.240.196.0/24 AMAZON
eu-west-1 54.240.197.0/24 AMAZON
us-west-1 54.240.198.0/24 AMAZON
ap-southeast-1 54.240.199.0/24 AMAZON
ap-northeast-1 54.240.200.0/24 AMAZON
us-east-1 54.240.202.0/24 AMAZON
ap-southeast-2 54.240.203.0/24 AMAZON
ap-southeast-2 54.240.204.0/22 AMAZON
us-east-1 54.240.208.0/22 AMAZON
us-west-1 54.240.212.0/22 AMAZON
us-east-1 54.240.216.0/22 AMAZON
eu-west-1 54.240.220.0/22 AMAZON
ap-northeast-1 54.240.225.0/24 AMAZON
ap-southeast-1 54.240.226.0/24 AMAZON
ap-southeast-1 54.240.227.0/24 AMAZON
us-east-1 54.240.228.0/23 AMAZON
us-west-2 54.240.230.0/23 AMAZON
us-east-1 54.240.232.0/22 AMAZON
ap-northeast-2 54.240.236.0/22 AMAZON
eu-central-1 54.240.240.0/24 AMAZON
sa-east-1 54.240.244.0/22 AMAZON
us-west-2 54.240.248.0/21 AMAZON
us-west-1 54.241.0.0/16 AMAZON
us-east-1 54.242.0.0/15 AMAZON
us-west-2 54.244.0.0/16 AMAZON
us-west-2 54.245.0.0/16 AMAZON
eu-west-1 54.246.0.0/16 AMAZON
eu-west-1 54.247.0.0/16 AMAZON
ap-northeast-1 54.248.0.0/15 AMAZON
ap-northeast-1 54.250.0.0/16 AMAZON
ap-southeast-1 54.251.0.0/16 AMAZON
ap-southeast-2 54.252.0.0/16 AMAZON
ap-southeast-2 54.253.0.0/16 AMAZON
ap-southeast-1 54.254.0.0/16 AMAZON
ap-southeast-1 54.255.0.0/16 AMAZON
us-east-1 67.202.0.0/18 AMAZON
us-east-1 72.21.192.0/19 AMAZON
us-east-1 72.44.32.0/19 AMAZON
us-east-1 75.101.128.0/17 AMAZON
eu-west-1 79.125.0.0/17 AMAZON
eu-west-1 87.238.80.0/21 AMAZON
us-gov-west-1 96.127.0.0/17 AMAZON
ap-northeast-1 103.4.8.0/21 AMAZON
ap-southeast-1 103.246.148.0/23 AMAZON
ap-northeast-1 103.246.150.0/23 AMAZON
us-east-1 107.20.0.0/14 AMAZON
ap-southeast-1 122.248.192.0/18 AMAZON
us-east-1 172.96.97.0/24 AMAZON
us-east-1 174.129.0.0/16 AMAZON
ap-southeast-1 175.41.128.0/18 AMAZON
ap-northeast-1 175.41.192.0/18 AMAZON
ap-northeast-1 176.32.64.0/19 AMAZON
us-east-1 176.32.96.0/21 AMAZON
eu-west-1 176.32.104.0/21 AMAZON
us-west-1 176.32.112.0/21 AMAZON
us-east-1 176.32.120.0/22 AMAZON
us-west-2 176.32.125.0/25 AMAZON
ap-northeast-1 176.34.0.0/19 AMAZON
ap-northeast-1 176.34.32.0/19 AMAZON
eu-west-1 176.34.64.0/18 AMAZON
eu-west-1 176.34.128.0/17 AMAZON
sa-east-1 177.71.128.0/17 AMAZON
sa-east-1 177.72.240.0/21 AMAZON
eu-west-1 178.236.0.0/20 AMAZON
us-west-1 184.72.0.0/18 AMAZON
us-east-1 184.72.64.0/18 AMAZON
us-east-1 184.72.128.0/17 AMAZON
us-east-1 184.73.0.0/16 AMAZON
us-west-1 184.169.128.0/17 AMAZON
eu-west-1 185.48.120.0/22 AMAZON
ap-southeast-1 203.83.220.0/22 AMAZON
us-west-1 204.236.128.0/18 AMAZON
us-east-1 204.236.192.0/18 AMAZON
us-west-1 204.246.160.0/22 AMAZON
GLOBAL 204.246.164.0/22 AMAZON
GLOBAL 204.246.168.0/22 AMAZON
GLOBAL 204.246.174.0/23 AMAZON
GLOBAL 204.246.176.0/20 AMAZON
GLOBAL 205.251.192.0/19 AMAZON
us-east-1 205.251.224.0/22 AMAZON
us-west-1 205.251.228.0/22 AMAZON
us-west-2 205.251.232.0/22 AMAZON
us-gov-west-1 205.251.236.0/22 AMAZON
us-east-1 205.251.240.0/22 AMAZON
us-east-1 205.251.244.0/23 AMAZON
us-east-1 205.251.247.0/24 AMAZON
us-east-1 205.251.248.0/24 AMAZON
GLOBAL 205.251.249.0/24 AMAZON
GLOBAL 205.251.250.0/23 AMAZON
GLOBAL 205.251.252.0/23 AMAZON
GLOBAL 205.251.254.0/24 AMAZON
us-east-1 205.251.255.0/24 AMAZON
us-east-1 207.171.160.0/20 AMAZON
us-east-1 207.171.176.0/20 AMAZON
GLOBAL 216.137.32.0/19 AMAZON
us-east-1 216.182.224.0/20 AMAZON
us-east-1 23.20.0.0/14 EC2
eu-west-1 46.51.128.0/18 EC2
eu-west-1 46.51.192.0/20 EC2
ap-southeast-1 46.51.216.0/21 EC2
ap-northeast-1 46.51.224.0/19 EC2
eu-west-1 46.137.0.0/17 EC2
eu-west-1 46.137.128.0/18 EC2
ap-southeast-1 46.137.192.0/19 EC2
ap-southeast-1 46.137.224.0/19 EC2
us-east-1 50.16.0.0/15 EC2
us-west-1 50.18.0.0/16 EC2
us-east-1 50.19.0.0/16 EC2
us-west-2 50.112.0.0/16 EC2
us-east-1 52.0.0.0/15 EC2
us-east-1 52.2.0.0/15 EC2
us-east-1 52.4.0.0/14 EC2
us-west-1 52.8.0.0/16 EC2
us-west-1 52.9.0.0/16 EC2
us-west-2 52.10.0.0/15 EC2
us-west-2 52.12.0.0/15 EC2
eu-west-1 52.16.0.0/15 EC2
eu-west-1 52.18.0.0/15 EC2
us-east-1 52.20.0.0/14 EC2
us-west-2 52.24.0.0/14 EC2
eu-central-1 52.28.0.0/16 EC2
eu-central-1 52.29.0.0/16 EC2
eu-west-1 52.30.0.0/15 EC2
us-west-2 52.32.0.0/14 EC2
us-west-2 52.36.0.0/14 EC2
us-west-2 52.40.0.0/14 EC2
eu-west-1 52.48.0.0/14 EC2
us-west-1 52.52.0.0/15 EC2
eu-central-1 52.58.0.0/15 EC2
ap-southeast-2 52.62.0.0/15 EC2
ap-southeast-2 52.64.0.0/17 EC2
ap-southeast-2 52.64.128.0/17 EC2
ap-southeast-2 52.65.0.0/16 EC2
sa-east-1 52.67.0.0/16 EC2
ap-northeast-1 52.68.0.0/15 EC2
us-east-1 52.70.0.0/15 EC2
us-east-1 52.72.0.0/15 EC2
ap-southeast-1 52.74.0.0/16 EC2
ap-southeast-1 52.76.0.0/17 EC2
ap-southeast-1 52.76.128.0/17 EC2
ap-southeast-1 52.77.0.0/16 EC2
ap-northeast-2 52.79.0.0/16 EC2
us-east-1 52.86.0.0/15 EC2
us-west-2 52.88.0.0/15 EC2
us-east-1 52.90.0.0/15 EC2
sa-east-1 52.95.240.0/24 EC2
ap-southeast-2 52.95.241.0/24 EC2
ap-southeast-1 52.95.242.0/24 EC2
ap-northeast-1 52.95.243.0/24 EC2
eu-west-1 52.95.244.0/24 EC2
us-east-1 52.95.245.0/24 EC2
us-west-1 52.95.246.0/24 EC2
us-west-2 52.95.247.0/24 EC2
eu-central-1 52.95.248.0/24 EC2
cn-north-1 52.95.249.0/24 EC2
ap-northeast-2 52.95.252.0/24 EC2
sa-east-1 52.95.255.0/28 EC2
ap-southeast-2 52.95.255.16/28 EC2
ap-southeast-1 52.95.255.32/28 EC2
ap-northeast-1 52.95.255.48/28 EC2
eu-west-1 52.95.255.64/28 EC2
us-east-1 52.95.255.80/28 EC2
us-west-1 52.95.255.96/28 EC2
us-west-2 52.95.255.112/28 EC2
eu-central-1 52.95.255.128/28 EC2
cn-north-1 52.95.255.144/28 EC2
ap-northeast-1 52.192.0.0/15 EC2
ap-northeast-1 52.196.0.0/14 EC2
us-east-1 52.200.0.0/13 EC2
eu-west-1 52.208.0.0/13 EC2
ap-southeast-1 52.220.0.0/15 EC2
ap-northeast-1 54.64.0.0/15 EC2
ap-southeast-2 54.66.0.0/16 EC2
us-west-1 54.67.0.0/16 EC2
us-west-2 54.68.0.0/14 EC2
eu-west-1 54.72.0.0/15 EC2
eu-west-1 54.74.0.0/15 EC2
eu-west-1 54.76.0.0/15 EC2
eu-west-1 54.78.0.0/16 EC2
ap-southeast-2 54.79.0.0/16 EC2
us-east-1 54.80.0.0/13 EC2
us-east-1 54.88.0.0/14 EC2
ap-northeast-1 54.92.0.0/17 EC2
us-east-1 54.92.128.0/17 EC2
eu-central-1 54.93.0.0/16 EC2
sa-east-1 54.94.0.0/16 EC2
ap-northeast-1 54.95.0.0/16 EC2
us-east-1 54.144.0.0/14 EC2
us-west-2 54.148.0.0/15 EC2
ap-northeast-1 54.150.0.0/16 EC2
us-west-1 54.151.0.0/17 EC2
ap-southeast-1 54.151.128.0/17 EC2
us-east-1 54.152.0.0/16 EC2
us-west-1 54.153.0.0/17 EC2
ap-southeast-2 54.153.128.0/17 EC2
eu-west-1 54.154.0.0/16 EC2
eu-west-1 54.155.0.0/16 EC2
us-east-1 54.156.0.0/14 EC2
us-east-1 54.160.0.0/13 EC2
ap-northeast-1 54.168.0.0/16 EC2
ap-southeast-1 54.169.0.0/16 EC2
eu-west-1 54.170.0.0/15 EC2
us-east-1 54.172.0.0/15 EC2
us-east-1 54.174.0.0/15 EC2
us-west-1 54.176.0.0/15 EC2
ap-northeast-1 54.178.0.0/16 EC2
ap-southeast-1 54.179.0.0/16 EC2
us-west-1 54.183.0.0/16 EC2
us-west-2 54.184.0.0/13 EC2
us-west-1 54.193.0.0/16 EC2
eu-west-1 54.194.0.0/15 EC2
us-east-1 54.196.0.0/15 EC2
us-east-1 54.198.0.0/16 EC2
ap-northeast-1 54.199.0.0/16 EC2
us-west-2 54.200.0.0/15 EC2
us-west-2 54.202.0.0/15 EC2
us-east-1 54.204.0.0/15 EC2
ap-southeast-2 54.206.0.0/16 EC2
sa-east-1 54.207.0.0/16 EC2
us-east-1 54.208.0.0/15 EC2
us-east-1 54.210.0.0/15 EC2
us-west-2 54.212.0.0/15 EC2
us-west-2 54.214.0.0/16 EC2
us-west-1 54.215.0.0/16 EC2
eu-west-1 54.216.0.0/15 EC2
us-west-2 54.218.0.0/16 EC2
us-west-1 54.219.0.0/16 EC2
eu-west-1 54.220.0.0/16 EC2
us-east-1 54.221.0.0/16 EC2
cn-north-1 54.222.128.0/17 EC2
cn-north-1 54.223.0.0/16 EC2
us-east-1 54.224.0.0/15 EC2
us-east-1 54.226.0.0/15 EC2
eu-west-1 54.228.0.0/16 EC2
eu-west-1 54.229.0.0/16 EC2
sa-east-1 54.232.0.0/16 EC2
sa-east-1 54.233.0.0/18 EC2
sa-east-1 54.233.64.0/18 EC2
sa-east-1 54.233.128.0/17 EC2
us-east-1 54.234.0.0/15 EC2
us-east-1 54.236.0.0/15 EC2
ap-northeast-1 54.238.0.0/16 EC2
us-west-1 54.241.0.0/16 EC2
us-east-1 54.242.0.0/15 EC2
us-west-2 54.244.0.0/16 EC2
us-west-2 54.245.0.0/16 EC2
eu-west-1 54.246.0.0/16 EC2
eu-west-1 54.247.0.0/16 EC2
ap-northeast-1 54.248.0.0/15 EC2
ap-northeast-1 54.250.0.0/16 EC2
ap-southeast-1 54.251.0.0/16 EC2
ap-southeast-2 54.252.0.0/16 EC2
ap-southeast-2 54.253.0.0/16 EC2
ap-southeast-1 54.254.0.0/16 EC2
ap-southeast-1 54.255.0.0/16 EC2
us-east-1 67.202.0.0/18 EC2
us-east-1 72.44.32.0/19 EC2
us-east-1 75.101.128.0/17 EC2
eu-west-1 79.125.0.0/17 EC2
us-gov-west-1 96.127.0.0/17 EC2
ap-northeast-1 103.4.8.0/21 EC2
us-east-1 107.20.0.0/14 EC2
ap-southeast-1 122.248.192.0/18 EC2
us-east-1 174.129.0.0/16 EC2
ap-southeast-1 175.41.128.0/18 EC2
ap-northeast-1 175.41.192.0/18 EC2
ap-northeast-1 176.32.64.0/19 EC2
ap-northeast-1 176.34.0.0/19 EC2
ap-northeast-1 176.34.32.0/19 EC2
eu-west-1 176.34.64.0/18 EC2
eu-west-1 176.34.128.0/17 EC2
sa-east-1 177.71.128.0/17 EC2
us-west-1 184.72.0.0/18 EC2
us-east-1 184.72.64.0/18 EC2
us-east-1 184.72.128.0/17 EC2
us-east-1 184.73.0.0/16 EC2
us-west-1 184.169.128.0/17 EC2
eu-west-1 185.48.120.0/22 EC2
us-west-1 204.236.128.0/18 EC2
us-east-1 204.236.192.0/18 EC2
us-east-1 216.182.224.0/20 EC2
GLOBAL 205.251.192.0/21 ROUTE53
us-west-1 54.183.255.128/26 ROUTE53_HEALTHCHECKS
eu-west-1 54.228.16.0/26 ROUTE53_HEALTHCHECKS
sa-east-1 54.232.40.64/26 ROUTE53_HEALTHCHECKS
us-west-1 54.241.32.64/26 ROUTE53_HEALTHCHECKS
us-east-1 54.243.31.192/26 ROUTE53_HEALTHCHECKS
us-west-2 54.244.52.192/26 ROUTE53_HEALTHCHECKS
us-west-2 54.245.168.0/26 ROUTE53_HEALTHCHECKS
ap-northeast-1 54.248.220.0/26 ROUTE53_HEALTHCHECKS
ap-northeast-1 54.250.253.192/26 ROUTE53_HEALTHCHECKS
ap-southeast-1 54.251.31.128/26 ROUTE53_HEALTHCHECKS
ap-southeast-2 54.252.79.128/26 ROUTE53_HEALTHCHECKS
ap-southeast-2 54.252.254.192/26 ROUTE53_HEALTHCHECKS
ap-southeast-1 54.255.254.192/26 ROUTE53_HEALTHCHECKS
us-east-1 107.23.255.0/26 ROUTE53_HEALTHCHECKS
eu-west-1 176.34.159.192/26 ROUTE53_HEALTHCHECKS
sa-east-1 177.71.207.128/26 ROUTE53_HEALTHCHECKS
GLOBAL 52.84.0.0/15 CLOUDFRONT
GLOBAL 54.182.0.0/16 CLOUDFRONT
GLOBAL 54.192.0.0/16 CLOUDFRONT
GLOBAL 54.230.0.0/16 CLOUDFRONT
GLOBAL 54.239.128.0/18 CLOUDFRONT
GLOBAL 54.239.192.0/19 CLOUDFRONT
GLOBAL 54.240.128.0/18 CLOUDFRONT
GLOBAL 204.246.164.0/22 CLOUDFRONT
GLOBAL 204.246.168.0/22 CLOUDFRONT
GLOBAL 204.246.174.0/23 CLOUDFRONT
GLOBAL 204.246.176.0/20 CLOUDFRONT
GLOBAL 205.251.192.0/19 CLOUDFRONT
GLOBAL 205.251.249.0/24 CLOUDFRONT
GLOBAL 205.251.250.0/23 CLOUDFRONT
GLOBAL 205.251.252.0/23 CLOUDFRONT
GLOBAL 205.251.254.0/24 CLOUDFRONT
GLOBAL 216.137.32.0/19 CLOUDFRONT
(env) ➜ aws
Filtering
(env) ➜ aws python aws-ranges.py -r sa-east-1
region ip_prefix service
--------- ----------------- --------------------
sa-east-1 52.67.0.0/16 AMAZON
sa-east-1 52.92.39.0/24 AMAZON
sa-east-1 52.92.64.0/22 AMAZON
sa-east-1 52.92.72.0/22 AMAZON
sa-east-1 52.94.7.0/24 AMAZON
sa-east-1 52.95.240.0/24 AMAZON
sa-east-1 52.95.255.0/28 AMAZON
sa-east-1 54.94.0.0/16 AMAZON
sa-east-1 54.207.0.0/16 AMAZON
sa-east-1 54.231.253.0/24 AMAZON
sa-east-1 54.232.0.0/16 AMAZON
sa-east-1 54.233.0.0/18 AMAZON
sa-east-1 54.233.64.0/18 AMAZON
sa-east-1 54.233.128.0/17 AMAZON
sa-east-1 54.240.244.0/22 AMAZON
sa-east-1 177.71.128.0/17 AMAZON
sa-east-1 177.72.240.0/21 AMAZON
sa-east-1 52.67.0.0/16 EC2
sa-east-1 52.95.240.0/24 EC2
sa-east-1 52.95.255.0/28 EC2
sa-east-1 54.94.0.0/16 EC2
sa-east-1 54.207.0.0/16 EC2
sa-east-1 54.232.0.0/16 EC2
sa-east-1 54.233.0.0/18 EC2
sa-east-1 54.233.64.0/18 EC2
sa-east-1 54.233.128.0/17 EC2
sa-east-1 177.71.128.0/17 EC2
sa-east-1 54.232.40.64/26 ROUTE53_HEALTHCHECKS
sa-east-1 177.71.207.128/26 ROUTE53_HEALTHCHECKS
(env) ➜ aws python aws-ranges.py -r sa-east-1 -s ec2
region ip_prefix service
--------- --------------- ---------
sa-east-1 52.67.0.0/16 EC2
sa-east-1 52.95.240.0/24 EC2
sa-east-1 52.95.255.0/28 EC2
sa-east-1 54.94.0.0/16 EC2
sa-east-1 54.207.0.0/16 EC2
sa-east-1 54.232.0.0/16 EC2
sa-east-1 54.233.0.0/18 EC2
sa-east-1 54.233.64.0/18 EC2
sa-east-1 54.233.128.0/17 EC2
sa-east-1 177.71.128.0/17 EC2
(env) ➜ aws
The code
#!/usr/bin/env python
#March 8th 2016
__author__ = 'Jason Riedel'
__description__ = 'Grabs IP ranges from amazon'
__version__ = '1.0'
url = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
import requests
import json
import argparse
from tabulate import tabulate
parser = argparse.ArgumentParser()
parser.add_argument('-r', '--region', action="store", dest="regionFilter", required=False, help="Region to filter/return data for: us-west, ap-southeast-1, us-east-1")
parser.add_argument('-s', '--service', action="store", dest="serviceFilter", required=False, help="Service to filter/return data for: AMAZON, CLOUDFRONT, EC2")
parser.add_argument('-rl', action="store_true", dest="listRegions", required=False, help="List known regions")
parser.add_argument('-sl', action="store_true", dest="listService", required=False, help="List known services")
args = parser.parse_args()
def get_json(url):
try:
r = requests.get(url)
jdata = r.json()
except Exception, e:
print "ERROR - %s failed: %s" % (url, e)
return jdata
def list_filter_json(jdata, filter_on):
filtered_data = []
for i in range(len(jdata['prefixes'])):
filtered_data.append(jdata['prefixes'][i][filter_on])
return filtered_data
def filter_json(jdata, filters):
filtered_data = []
for i in range(len(jdata['prefixes'])):
if 'region' in filters and 'service' in filters:
if filters['region'].lower() in jdata['prefixes'][i]['region'].lower() and filters['service'].lower() in jdata['prefixes'][i]['service'].lower():
filtered_data.append(jdata['prefixes'][i])
elif 'region' in filters:
if filters['region'].lower() in jdata['prefixes'][i]['region'].lower():
filtered_data.append(jdata['prefixes'][i])
elif 'service' in filters:
if filters['service'].lower() in jdata['prefixes'][i]['service'].lower():
filtered_data.append(jdata['prefixes'][i])
return filtered_data
def list_regions(jdata):
regions = set()
filtered_data = list_filter_json(jdata, 'region')
for region in filtered_data:
regions.add(region)
for region in sorted(regions):
print region
def list_services(jdata):
services = set()
filtered_data = list_filter_json(jdata, 'service')
for service in filtered_data:
services.add(service)
for service in sorted(services):
print service
def table_it(filtered_data):
print tabulate(filtered_data, headers="keys")
if __name__ == "__main__":
jdata = get_json(url)
if args.listRegions or args.listService:
if args.listRegions:
list_regions(jdata)
elif args.listService:
list_services(jdata)
else:
parser.print_help()
else:
if args.regionFilter or args.serviceFilter:
if args.regionFilter and args.serviceFilter:
filters = {'region': args.regionFilter, 'service': args.serviceFilter}
else:
if args.regionFilter:
filters = {'region': args.regionFilter}
if args.serviceFilter:
filters = {'service': args.serviceFilter}
filtered_data = filter_json(jdata, filters)
table_it(filtered_data)
else:
table_it(jdata['prefixes'])