实现一个简单的dnspod解析api:
dnspod api地址:https://www.dnspod.cn/docs/records.html#record-create
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'chenmingle'
import urllib2
import urllib
import json
import time
import socket
public_dic={}
public_dic["login_token"]=("%s,%s" % ('access_id','access_key'))
public_dic["format"]="json"
headers={}
headers["User-Agent"]="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
def getDomainID(domain):
url="https://dnsapi.cn/Domain.INFO"
info=public_dic.copy()
info["domain"]=domain
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
formatJson=json.load(response)
# print formatJson["domain"]['id']
# print formatJson["domain"]
if formatJson["status"]["code"]!="1":
return 0
else:
return formatJson["domain"]["id"]
pass
def getRecordList(domain_id):
url="https://dnsapi.cn/Record.List"
info=public_dic.copy()
info["domain_id"]=domain_id
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
# print dnsJson
for i in dnsJson['records']:
print i['id'],i['type'],i['name'],i['line'],i['line_id'],i['value'],i['ttl'],i['enabled']
def getRecordID(domain_id,record,line_id):
url="https://dnsapi.cn/Record.List"
info=public_dic.copy()
info["domain_id"]=domain_id
info["sub_domain"]=record
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
# print dnsJson
for i in dnsJson['records']:
if i['line_id'] == line_id:
print i['id'],i['type'],i['name'],i['line'],i['value'],i['ttl'],i['status']
def createRecord(domain_id,sub_domain,record_type,record_line_id,value):
url="https://dnsapi.cn/Record.Create"
info=public_dic.copy()
info['domain_id']=domain_id
info['sub_domain']=sub_domain
info['record_type']=record_type
info['record_line_id']=record_line_id
info['value']=value
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
print dnsJson
def updateRecord(domain_id,sub_domain,record_type,record_line_id,value):
url="https://dnsapi.cn/Record.List"
info=public_dic.copy()
info["domain_id"]=domain_id
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
for i in dnsJson['records']:
if i['name'] == sub_domain and i['line_id'] == record_line_id:
record_id=i['id']
print record_id
url="https://dnsapi.cn/Record.Modify"
info=public_dic.copy()
info['domain_id']=domain_id
info['record_id']=record_id
info['sub_domain']=sub_domain
info['record_type']=record_type
info['record_line_id']=record_line_id
info['value']=value
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
print dnsJson
def updateRecordLine(domain_id,sub_domain,record_type,line_id,record_line_id,value):
url="https://dnsapi.cn/Record.List"
info=public_dic.copy()
info["domain_id"]=domain_id
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
for i in dnsJson['records']:
if i['name'] == sub_domain and i['line_id'] == line_id:
record_id=i['id']
print record_id
url="https://dnsapi.cn/Record.Modify"
info=public_dic.copy()
info['domain_id']=domain_id
info['record_id']=record_id
info['sub_domain']=sub_domain
info['record_type']=record_type
info['record_line_id']=record_line_id
info['value']=value
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
print dnsJson
def statusRecord(domain_id,sub_domain,record_line_id,status):
url="https://dnsapi.cn/Record.List"
info=public_dic.copy()
info["domain_id"]=domain_id
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
for i in dnsJson['records']:
if i['name'] == sub_domain and i['line_id'] == record_line_id:
record_id=i['id']
url="https://dnsapi.cn/Record.Status"
info=public_dic.copy()
info['domain_id']=domain_id
info['record_id']=record_id
info['status']=status
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
print dnsJson
def deleteRecord(domain_id,sub_domain,record_line_id):
url="https://dnsapi.cn/Record.List"
info=public_dic.copy()
info["domain_id"]=domain_id
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
for i in dnsJson['records']:
if i['name'] == sub_domain and i['line_id'] == record_line_id:
record_id=i['id']
url="https://dnsapi.cn/Record.Remove"
info=public_dic.copy()
info['domain_id']=domain_id
info['record_id']=record_id
request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
response=urllib2.urlopen(request)
dnsJson=json.load(response)
print dnsJson
id = getDomainID('xxx.com')
getRecordList(id)
#getRecordID(id,'cml','10=1')
#createRecord(id,'cml','A','0','*.*.*.*')
#updateRecordLine(id,'cml','A','10=1','10=1','*.*.*.*')
#statusRecord(id,'cml','10=1','enabled')
#deleteRecord(id,'cml','10=1')