獲取dnspod指定域名的記錄
阿新 • • 發佈:2018-03-16
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‘子域名‘,u‘IP段‘,u‘IP‘,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指定域名的記錄