Skip to content

Instantly share code, notes, and snippets.

@zupo
Created October 7, 2015 13:15
Show Gist options
  • Save zupo/04c06b4482a0df051058 to your computer and use it in GitHub Desktop.
Save zupo/04c06b4482a0df051058 to your computer and use it in GitHub Desktop.
Compile a list of OpenVPN routes to tunnel traffic for Amazon's IPs
CIDRs = {
'1': '128.0.0.0',
'2': '192.0.0.0',
'3': '224.0.0.0',
'4': '240.0.0.0',
'5': '248.0.0.0',
'6': '252.0.0.0',
'7': '254.0.0.0',
'8': '255.0.0.0',
'9': '255.128.0.0',
'10': '255.192.0.0',
'11': '255.224.0.0',
'12': '255.240.0.0',
'13': '255.248.0.0',
'14': '255.252.0.0',
'15': '255.254.0.0',
'16': '255.255.0.0',
'17': '255.255.128.0',
'18': '255.255.192.0',
'19': '255.255.224.0',
'20': '255.255.240.0',
'21': '255.255.248.0',
'22': '255.255.252.0',
'23': '255.255.254.0',
'24': '255.255.255.0',
'25': '255.255.255.128',
'26': '255.255.255.192',
'27': '255.255.255.224',
'28': '255.255.255.240',
'29': '255.255.255.248',
'30': '255.255.255.252',
'31': '255.255.255.254',
'32': '255.255.255.255',
}
import requests
r = requests.get('https://ip-ranges.amazonaws.com/ip-ranges.json').json()
for prefix in r['prefixes']:
if not prefix['region'].startswith('us-east'):
continue
ip, cidr = prefix['ip_prefix'].split('/')
print 'route {} {}'.format(ip, CIDRs[cidr])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment