小生博客:http://xsboke.blog.51cto.com
創(chuàng)新互聯(lián)專注于工布江達(dá)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。工布江達(dá)網(wǎng)站建設(shè)公司,為工布江達(dá)等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
-------謝謝您的參考,如有疑問(wèn),歡迎交流
將DNSPOD的域名導(dǎo)入到DNSLADNSLA(鄭州帝恩愛斯)
DNSLA(鄭州帝恩愛斯)的開發(fā)規(guī)范:
1、開通API:使用DNSLA-API開發(fā)應(yīng)用,首先需要到個(gè)人后臺(tái)申請(qǐng)開通并設(shè)置API的ID和密鑰才可以使用。
2、API調(diào)用頻率:為防止用戶大量頻繁調(diào)用API給系統(tǒng)造成過(guò)多壓力,我們對(duì)調(diào)用頻率做了限制,每小時(shí)不超過(guò)300次,每天不超過(guò)3000次,如超過(guò)此限制,則會(huì)分別被暫停調(diào)用1小時(shí)和24小時(shí)。
3、安全傳輸:在調(diào)用API通訊期間,需要發(fā)送API賬號(hào)及密鑰,為保障賬號(hào)安全,必須使用https開頭的API地址,以免在通訊中泄露API密鑰。
4、關(guān)于編碼:請(qǐng)使用UTF-8編碼格式進(jìn)行數(shù)據(jù)傳輸。
5、API權(quán)限鎖定:當(dāng)API調(diào)用密碼錯(cuò)誤超過(guò)10次將會(huì)鎖定該用戶的API權(quán)限,鎖定后不會(huì)自動(dòng)解鎖,需要您登錄用戶后臺(tái)進(jìn)行解鎖操作。
DNSLA(鄭州帝恩愛斯)申請(qǐng)開通API:
申請(qǐng)方式:免費(fèi)申請(qǐng)。
申請(qǐng)地址:https://www.dns.la/manage/APISet.aspx (需登錄)
注意事項(xiàng):API長(zhǎng)期不用時(shí)請(qǐng)關(guān)閉!
代碼:
import requests,time
Token_ID = 'ID,Token_Str' # dnspod 的API
DNSLA_APIID = 'apiid' # DNSLA的apiid
DNSLA_APIKey = 'apipass' # DNSLA的apipass
def Get_Init(Login_Token, OffSet, Length):
'''
需要通過(guò)函數(shù)Get_Domians來(lái)判定OffSet和Length的數(shù)值.
:param Login_Token:
:param OffSet: 記錄開始的偏移, 第一條記錄為 0, 依次類推.
:param Length: 要獲取的域名數(shù)量, 比如獲取20個(gè), 則為20.
:return:
'''
Domain_R = requests.post('https://dnsapi.cn/Domain.List', data={'login_token': Login_Token,
'format': 'json',
'offset': OffSet,
'length': Length})
Domain_Result_Data = Domain_R.json()
Domians_Info = Domain_Result_Data['domains']
Domain_Count = 0
for Domain_Dict in Domians_Info:
Domain_ID = Domain_Dict['id']
Domain_Name = Domain_Dict['name']
Domain_Status = Domain_Dict['status']
Domain_Ext_Status = Domain_Dict['ext_status']
if Domain_Status != 'enable':
'''如果域名沒有啟用則跳過(guò)'''
continue
if Domain_Ext_Status:
'''如果域名無(wú)效則跳過(guò)'''
continue
# 用來(lái)統(tǒng)計(jì)添加了多少個(gè)域名
Domain_Count += 1
# DNSLA 添加域名
DNSLA_Create_Domains = requests.post('https://api.dns.la/api/domain.ashx',
data={'cmd':'create',
'apiid':DNSLA_APIID,
'apipass':DNSLA_APIKey,
'domain':Domain_Name})
DNSLA_Domain_Recv = DNSLA_Create_Domains.json()
DNSLA_Domain_Data = DNSLA_Domain_Recv['data']
DNSLA_Domain_ID = DNSLA_Domain_Data['domainid']
if DNSLA_Domain_Recv['status']['code'] == 300:
print("添加域名:[%s]成功."%(Domain_Name))
else:
Error_Info = DNSLA_Domain_Recv['status']['name']
print("添加域名:[%s]失敗,錯(cuò)誤信息:[%s]." % (Domain_Name,Error_Info))
Record_R = requests.post('https://dnsapi.cn/Record.List', data={'login_token': Login_Token,
'format': 'json',
'domain_id': Domain_ID})
Record_Result_Data = Record_R.json()
Record_Info = Record_Result_Data['records']
for Record_Dict in Record_Info:
Record_Name = Record_Dict['name']
Record_Type = Record_Dict['type']
Record_Value = Record_Dict['value']
Record_Status = Record_Dict['enabled'] # 0,禁用 1,啟用
if Record_Status == '0':
'''如果記錄狀態(tài)為禁用則跳過(guò)'''
continue
if Record_Type == 'NS':
'''如果記錄類型為NS則跳過(guò)'''
continue
DNSLA_ADD_Record = requests.post('https://api.dns.la/api/record.ashx',
data={'cmd':'create',
'apiid':DNSLA_APIID,
'apipass':DNSLA_APIKey,
'rtype':'json',
'domainid':DNSLA_Domain_ID,
'host':Record_Name,
'recordtype':Record_Type,
'recordline':'Def',
'recorddata':Record_Value,
})
DNSLA_ADD_Record_Recv = DNSLA_ADD_Record.json()
if DNSLA_ADD_Record_Recv['status']['code'] == 300:
print("域名:[%s]添加解析記錄:[%s][%s][%s],成功."%(Domain_Name,Record_Name,Record_Type,Record_Value))
else:
Error_Info = DNSLA_ADD_Record_Recv['status']['name']
print("域名:[%s]添加解析記錄:[%s][%s][%s],失敗,錯(cuò)誤信息:[%s]."%(Domain_Name,Record_Name,Record_Type,Record_Value,Error_Info))
print("域名導(dǎo)入完成,共導(dǎo)入[%d]個(gè)域名,請(qǐng)驗(yàn)證!"%(Domain_Count))
def Get_Domians(Login_Token, Step_Size):
'''
:param Login_Token:
:param Step_Size: 步長(zhǎng),就是每次獲取域名的數(shù)量
:return:
:Memo: 本次請(qǐng)求使用了offset和length參數(shù)來(lái)減少每次請(qǐng)求的數(shù)量,用來(lái)提升程序的穩(wěn)定性
'''
Count_R = requests.post('https://dnsapi.cn/Domain.List', data={'login_token': Login_Token,
'format': 'json'})
Count_Result_Data = Count_R.json()
if Count_Result_Data['status']['code'] != '1':
return Count_Result_Data
Count = int(Count_Result_Data['info']['domain_total'])
for OffSet in range(0, Count, Step_Size):
if Count > Step_Size:
Integer = Count // int(Step_Size) # 取整 2
Remainder = Count % int(Step_Size) # 取余 40
else:
# Integer = 0
# Remainder = Count
Get_Init(Login_Token=Login_Token, OffSet=OffSet, Length=Count)
continue
if OffSet != 0 and OffSet == Integer * Step_Size:
Length = Remainder
Get_Init(Login_Token=Login_Token, OffSet=OffSet, Length=Length)
else:
Length = Step_Size
Get_Init(Login_Token=Login_Token, OffSet=OffSet, Length=Length)
break
Dnspod_Token = Token_ID
Get_Domians(Login_Token=Dnspod_Token,Step_Size=100)
文章題目:將DNSPOD域名批量導(dǎo)入到DNSLA
標(biāo)題來(lái)源:http://www.rwnh.cn/article18/jichgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站導(dǎo)航、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)