码迷,mamicode.com
首页 > 其他好文 > 详细

获取dnspod指定域名的记录

时间:2018-03-16 17:23:55      阅读:461      评论:0      收藏:0      [点我收藏+]

标签:.post   取域   strftime   指定   enable   mat   数据   alt   dom   

#!/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指定域名的记录

标签:.post   取域   strftime   指定   enable   mat   数据   alt   dom   

原文地址:https://www.cnblogs.com/cainiaoit/p/8582551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!