[Gandi][API] Create a domain name with account handle in Python.
#!/usr/bin/python3 import pprint import xmlrpc.client import sys import string import random pp = pprint.PrettyPrinter(indent = 4) api = xmlrpc.client.ServerProxy('https://rpc.ote.gandi.net/xmlrpc/') # INSERT YOUR OWN API KEY apikey = 'l' def generate_domainname(size = 10): domainname = '' . join(random.SystemRandom().choice(string.ascii_lowercase + string.digits) for _ in range(size)) return 'api' + domainname def create_contact(): contact_desc = { 'given': 'First Name', 'family': 'Last Name', 'email': 'example@example.com', 'streetaddr': 'My Street Address', 'zip': '75011', 'city': 'Paris', 'country': 'FR', 'phone':'+33.123456789', 'type': 0, 'password': 'mot2passe'} info = api.contact.create(apikey, contact_desc) return info def domain_available(domain): d = domain.split('.') if len(d) > 1: l = [domain] else: l = [] for tld in ['.com', '.net', '.org', '.xyz']: l.append(domain + tld) result = api.domain.available(apikey, l) import time while result[l[0]] == 'pending': time.sleep(0.3) result = api.domain.available(apikey, l) return result def create_domain(domain): # USER YOUR OWN GANDI HANDLE ASSOCIATED TO YOUR GANDI ACCOUNT GANDI_ACCOUNT = ' -GANDI' res = domain_available(domain) if res.get(domain) != 'available': print(domain) print('Not available') return else: print(domain) print('Available') contact_info = create_contact() handle = contact_info.get('handle') params = { 'owner': GANDI_ACCOUNT, 'admin': GANDI_ACCOUNT, 'bill': handle, 'tech': handle, 'duration':1 } op = api.domain.create(apikey, domain, params) print(op) def domain_info(domain): info = api.domain.info(apikey, domain) return info print("************************************") print("Api version") version = api.version.info(apikey) print(version) print("*****************************************************") print("API Contact info") contactInfo = api.contact.info(apikey) pp.pprint(contactInfo) print("*****************************************************") print("Domain create") domainName = generate_domainname() + '.com' create_domain(domainName) print("*****************************************************") print("Domain info") #domainName = 'apivvzg8zmbrz.com' info = domain_info(domainName) pp.pprint(info) print("*****************************************************") sys.exit(0)
Comments are closed, but trackbacks and pingbacks are open.