1. 程式人生 > >獲取dnspod指定域名的記錄

獲取dnspod指定域名的記錄

odi free earch strftime 是否 value append 判斷 登錄失敗

#!/usr/bin/python
#-*- coding: utf-8 -*-
import os,requests,json
import re,time,xlsxwriter

#時間
date=time.strftime("%Y-%m-%dT%H-%M-%S", time.localtime())
#文件名 
name=域名記錄-{0}.xlsx.format(date)
#指定域名
domail_name=""

#登錄測試
url=https://dnsapi.cn/Info.Version
token=

data={login_token:{0}.format(token),
format:json} r = requests.post(url,data=data) if r.json()[status][code] != 1: print(登錄失敗,檢查網站,token,id) exit(0) else: print(登錄成功,正在執行腳本) url=https://dnsapi.cn/Domain.List data={login_token:{0}.format(token),format:json,type:all} r = requests.post(url,data=data) json_data
=r.json() id_name=dict() domain_name_all=json_data[domains] for i in domain_name_all: if domail_name == i[name]: id_name[i[id]]=i[name] #獲取域名記錄 #獲取全部域名的記錄 url=https://dnsapi.cn/Record.List all_data=[] #獲取域名id for i in id_name.keys(): #獲取的參數 data={login_token:{0}.format(token),
format:json,domain_id:i} r = requests.post(url,data=data) json_data=r.json() #獲取到的內容寫入數組 all_data.append(json_data) #篩選出匹配的內容 doamin=dict() doamin_max=[] #匹配域名ip for i in all_data: #用於臨時存放域名的數據 tmp=[] #計算記錄總數 num=0 for ii in i[records]: #獲取ip段,ip段獲取為空則設置為空 if re.search(([0-9]{1,3}\.){3},ii[value]): #獲取ip段 tmp_ip=re.search(([0-9]{1,3}\.){3},ii[value]).group() #調整這裏可以控制獲取api的數據內容 tmp.append({name:ii[name],ip:tmp_ip,line:ii[line],value:ii[value],enabled:ii[enabled]}) else: #調整這裏可以控制獲取api的數據內容 tmp.append({name:ii[name],ip:‘‘,line:ii[line],value:ii[value],enabled:ii[enabled]}) num+=1 domain_name=i[domain][name] doamin_max.append({name:domain_name,num:num}) #判斷是否為空,不為空代表該域名有符合條件的數據 if len(tmp)!=0: doamin[i[domain][name]]=tmp #設置文件名 workbook=xlsxwriter.Workbook(name) #設置寬度 worksheet=workbook.add_worksheet() worksheet.set_column(A:B,20) worksheet.set_column(C:C,22) worksheet.set_column(D:D,20) worksheet.set_column(E:E,15) worksheet.set_column(F:F,15) worksheet.set_column(H:H,20) worksheet.set_column(I:I,15) worksheet.freeze_panes(1,0)# #設置單元格背景 xlsx_err=workbook.add_format() xlsx_err.set_bg_color(#D9534F) #設置文檔第一欄 title = [u域名,u子域名,uIP段,uIP,u線路,u啟用,‘‘,u域名,u總數] worksheet.write_row(A1,title) #初始值為2 num=2 #循環域名ID for i in doamin.keys(): #循環域名裏的記錄 for ii in doamin[i]: #數組變量 tmp=[i,ii[name],ii[ip],ii[value],u{0}.format(ii[line]),ii[enabled]] #1為啟用,0為未啟用,未啟用的標紅 if ii[enabled] == 1: worksheet.write_row(A{0}.format(num),tmp) else: worksheet.write_row(A{0}.format(num),tmp,xlsx_err) #自動加1 num += 1 #設置篩選 worksheet.autofilter(A1:F{0}.format(num-1)) #寫入域名總數 num=2 for i in doamin_max: tmp=[i[name],i[num]] worksheet.write_row(H{0}.format(num),tmp) num +=1 #關機文檔 workbook.close() # print(執行完畢,文件路徑+os.path.abspath(os.curdir)+"\\"+name) #print (r.json()) #print (r.text)

獲取dnspod指定域名的記錄