Skip to content

Instantly share code, notes, and snippets.

@Arathi
Created September 17, 2018 02:43
Show Gist options
  • Save Arathi/909082cb9bc7f676b5cf4bc0809f51a4 to your computer and use it in GitHub Desktop.
Save Arathi/909082cb9bc7f676b5cf4bc0809f51a4 to your computer and use it in GitHub Desktop.
将Amazon的提供的IP段(json格式)转换为Azure的IP段(XML格式)
# -*- coding: utf-8 -*-
import urllib.request
import urllib.parse
import json
import xml.dom.minidom
url = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
response = urllib.request.urlopen(url)
resp_json_str = response.read().decode('utf-8')
resp_json = json.loads(resp_json_str)
regions = {}
for prefix in resp_json['prefixes']:
ipRange = prefix['ip_prefix']
region = prefix['region']
if (region in regions.keys()):
regions[region].append(ipRange)
else:
regions[region] = [ipRange]
doc = xml.dom.minidom.Document()
root = doc.createElement('AzurePublicIpAddresses')
for name in regions.keys():
region = regions[name]
nodeRegion = doc.createElement('Region')
nodeRegion.setAttribute('Name', name)
for ipRange in region:
nodeIpRange = doc.createElement('IpRange')
nodeIpRange.setAttribute('Subnet', ipRange)
nodeRegion.appendChild(nodeIpRange)
root.appendChild(nodeRegion)
doc.appendChild(root)
fp = open('d:\\tmp\\ip-ranges.xml', 'w')
doc.writexml(fp, indent='', addindent='\t', newl='\n', encoding="utf-8")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment