Skip to content

Instantly share code, notes, and snippets.

@casdr
Last active October 16, 2016 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save casdr/9206fc3c44780e97a8d12eb4512b382f to your computer and use it in GitHub Desktop.
Save casdr/9206fc3c44780e97a8d12eb4512b382f to your computer and use it in GitHub Desktop.
CloudNS to DNSmanager.cc migrator

Migrate a CloudNS domain to DNSmanager

usage: cloudns_to_dnsmanager.py [-h] --domain DOMAIN --cloudns-id CLOUDNS_ID
                                --cloudns-pass CLOUDNS_PASS --dnsman-domain
                                DNSMAN_DOMAIN --dnsman-id DNSMAN_ID
                                --dnsman-key DNSMAN_KEY

Migrate CloudNS to DNSmanager

optional arguments:
  -h, --help            show this help message and exit
  --domain DOMAIN       Domain name
  --cloudns-id CLOUDNS_ID
                        CloudNS API auth-id
  --cloudns-pass CLOUDNS_PASS
                        CloudNS API auth-pass
  --dnsman-domain DNSMAN_DOMAIN
                        DNSmanager domain ID
  --dnsman-id DNSMAN_ID
                        DNSmanager API ID
  --dnsman-key DNSMAN_KEY
                        DNSmanager API key
#!/bin/env python
import requests
import argparse
parser = argparse.ArgumentParser(description='Migrate CloudNS to DNSmanager')
parser.add_argument('--domain', help='Domain name', required=True)
parser.add_argument('--cloudns-id', help='CloudNS API auth-id', required=True)
parser.add_argument('--cloudns-pass', help='CloudNS API auth-pass', required=True)
parser.add_argument('--dnsman-domain', help='DNSmanager domain ID', required=True)
parser.add_argument('--dnsman-id', help='DNSmanager API ID', required=True)
parser.add_argument('--dnsman-key', help='DNSmanager API key', required=True)
args = parser.parse_args()
domain = args.domain
cloudns_id = args.cloudns_id
cloudns_pass = args.cloudns_pass
dnsman_domain_id = args.dnsman_domain
dnsman_id = args.dnsman_id
dnsman_key = args.dnsman_key
cloudns_query = '?auth-id={}&auth-password={}&domain-name={}'.format(cloudns_id, cloudns_pass, domain)
cloudns_records = requests.get("https://api.cloudns.net/dns/records.json" + cloudns_query)
cloudns_records = cloudns_records.json()
dnsmanager_url = 'https://app.dnsmanager.cc/api/v1/user/domain/{}/records'.format(dnsman_domain_id)
for record_id in cloudns_records:
record = cloudns_records[record_id]
if record['type'] in ["NS", "SOA"]:
continue
print "{} - {} - {}".format(record['type'], record['host'], record['record'])
post_body = {
'id': dnsman_domain_id,
'type': record['type'],
'name': record['host'],
'content': record['record'],
'ttl': record['ttl']
}
dnsmanager_post = requests.post(dnsmanager_url, data=post_body, auth=(dnsman_id, dnsman_key))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment