標籤:
[[email protected] dnspod]# cat dnspod.sh #!/bin/bashfunction menu() {clearecho "*********************Dnspod************************"echo "* 1,將加速樂cname批量修改到dnspod *"echo "* 2, 將ip批量修改到dnspod*"echo "* 3, 單個網域名稱修改 *"echo "* 4, 退出 *"echo "***************************************************"read -p "請輸入編號: " numberread -p "請輸入D令牌: " number2}while truedomenucase $number in1)python /python/saltnew/dnspod/dnspod.py batch_jiasule $number2read -p "斷行符號繼續: ";;2)python /python/saltnew/dnspod/dnspod.py batch_dnspod $number2read -p "斷行符號繼續: ";;3)python /python/saltnew/dnspod/dnspod.py none $number2read -p "斷行符號繼續: ";;*)exit;;esacdone
[email protected] dnspod]# cat dnspod.py #!/bin/python#-*- coding: utf-8 -*-import urllibimport urllib2import os,sys,json,demjson,fileinput#處理post請求def post(url,data): req = urllib2.Request(url) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/json", "User-Agent": "dnspod-python/0.01 ([email protected]; DNSPod.CN API v2.8)"} data = urllib.urlencode(data,headers) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor()) response = opener.open(req, data) return response.read()#主函數def main(batch,login_code): #擷取網域名稱列表 posturlDomain=‘https://dnsapi.cn/Domain.List‘ dataDomain={‘login_email‘:‘[email protected]‘,‘login_password‘:‘123456‘,‘format‘:‘json‘,‘login_code‘:login_code} Domain={} records={} number=0 numbertwo=0 batchlist={} jiasulelist={} dnspodlist={} for i in demjson.decode(str(post(posturlDomain,dataDomain)))[u‘domains‘][:]:number+=1Domain[number]={str(i[u‘name‘]):str(i[u‘id‘])} for key,value in Domain.items():print key,value numb=input("please input number: ") domain_number=Domain[numb].values()[0] #擷取次層網域列表 posturlrecordlist=‘https://dnsapi.cn/Record.List‘ datarecordlist={‘login_email‘:‘[email protected]‘,‘login_password‘:‘123456‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘login_code‘:login_code} for i in demjson.decode(str(post(posturlrecordlist,datarecordlist)))[u‘records‘][:]:numbertwo+=1batchlist[i[u‘name‘]]=str(i[u‘id‘])records[numbertwo]={str(i[u‘name‘]):str(i[u‘id‘])} #大量復原 if batch == "batch_jiasule":for line in fileinput.input("/python/saltnew/dnspod/jiasule.txt"): name=line.strip(‘\n‘).split(‘ ‘)[0] cname=line.strip(‘\n‘).split(‘ ‘)[1] records_id=batchlist[name] jiasulelist[name]={cname:records_id} posturlmodify_batch=‘https://dnsapi.cn/Record.Modify‘ datamodify_batch={‘login_email‘:‘[email protected]‘,‘login_password‘:‘123456‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘sub_domain‘:name,‘record_type‘:‘CNAME‘,‘record_line‘:u‘預設‘.encode("utf8"),‘value‘:cname,‘record_id‘:records_id,‘login_code‘:login_code} print post(posturlmodify_batch,datamodify_batch)sys.exit(1) if batch == "batch_dnspod": for line in fileinput.input("/python/saltnew/dnspod/dnspod.txt"): name=line.strip(‘\n‘).split(‘ ‘)[0] ip=line.strip(‘\n‘).split(‘ ‘)[1] records_id=batchlist[name] dnspodlist[name]={ip:records_id} posturlmodify_dns=‘https://dnsapi.cn/Record.Modify‘ datamodify_dns={‘login_email‘:‘[email protected]‘,‘login_password‘:‘123456‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘sub_domain‘:name,‘record_type‘:‘A‘,‘record_line‘:u‘預設‘.encode("utf8"),‘value‘:ip,‘record_id‘:records_id,‘login_code‘:login_code} print post(posturlmodify_dns,datamodify_dns) sys.exit(1) #單個修改 for key,value in records.items():print key,value numb2=input("please input number: ") records_number=records[numb2].values()[0] records_name=records[numb2].keys()[0] record_type=raw_input("請輸入記錄類型: ") record_ip=raw_input("請輸入記錄值: ") #修改某個次層網域的記錄類型與記錄值 posturlmodify=‘https://dnsapi.cn/Record.Modify‘ datamodify={‘login_email‘:‘[email protected]‘,‘login_password‘:‘123456‘,‘format‘:‘json‘,‘domain_id‘:domain_number,‘sub_domain‘:records_name,‘record_type‘:record_type,‘record_line‘:u‘預設‘.encode("utf8"),‘value‘:record_ip,‘record_id‘:records_number,‘login_code‘:login_code} print post(posturlmodify,datamodify)if __name__ == ‘__main__‘: main(sys.argv[1],sys.argv[2])
dnspod.txttesttest 2.2.2.2testtest2 1.1.1.1jiasule.txttesttest 767b885d566c6111.cdn.jiashule.com.testtest2 b97c167111aba5dc.cdn.jiashule.com.
dnspod api呼叫指令碼