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
Last active
October 16, 2016 22:09
-
-
Save casdr/9206fc3c44780e97a8d12eb4512b382f to your computer and use it in GitHub Desktop.
CloudNS to DNSmanager.cc migrator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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