获取dnspod指定域名的记录
#!/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'] != '':
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'] == '':
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指定域名的记录的更多相关文章
- DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录
相关学习资料 http://baike.baidu.com/link?url=77B3BYIuVsB3MpK1nOQXI-JbS-AP5MvREzSnnedU7F9_G8l_Kvbkt_O2gKqFw ...
- DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录(转)
http://www.cnblogs.com/LittleHann/p/3828927.html 相关学习资料 http://baike.baidu.com/link?url=77B3BYIuVsB3 ...
- DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录 专题
首先要做的就是配置域名的MX 记录啦: 先添加一条A记录: mail.abc.com 指向 你的服务器IP! 然后添加域名的MX 记录,指向mail.abc.com A 记录( 即域名MX 记录的值为 ...
- PHP 如何获取当前的域名
PHP 如何获取当前的域名.这是PHP最基础的东西,也是用得最多的,记录下来 <? //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到 ...
- 获取呈现在格表(table)记录的主键
用mouse点击表格(table)的行或是批定列,获取记录的主键值.在ASP.NET的MVC应用程序中,已经没有办法象ASP.NET的Data控件一样,如GridView,DataList和Repea ...
- 将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件
Python 一大重要的功能,就是可处理大量数据,那分不开的即是使用Excel表格了,这里我做下学习之后的总结,望对我,及广大同仁们是一个帮助Python处理Excel数据需要用到2个库:xlwt 和 ...
- charles 过滤指定域名
本文参考:charles 过滤指定域名 当使用"序列视图"的时候 请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 UR ...
- 关于怎么获取kafka指定位置offset消息(转)
1.在kafka中如果不设置消费的信息的话,一个消息只能被一个group.id消费一次,而新加如的group.id则会被“消费管理”记录,并指定从当前记录的消息位置开始向后消费.如果有段时间消费者关闭 ...
- 获取打开指定Action的所有应用包名
获取打开指定功能的所有应用:发消息,分享等等. 如打开网页,下面代码即可查看所有的浏览器 //查找所有浏览器 private void queryPackage() { PackageManager ...
随机推荐
- spark练习--统计xxx大学的各个少数名族的情况
最近,有一份数据,是关于学校的数据,这个里面有所有学生的信息,今天闲来没事,我就想用spark的方式来读取文件,并且来统计这个学校的各个民族的情况,以前我用hadoop中mapReduce来计算,不得 ...
- PHP.34-TP框架商城应用实例-后台10-商品分类-需求分析、创建无限级商品分类,递归
商品管理需求分析 1.实现商品无限级分类管理[类似京东三级分类] 2.添加商品时要指定商品属于一个主分类和多个扩展分类[扩展分类可以是其他主分类] 3.商品列表中可以根据分类搜索商品 a) 搜索一个分 ...
- Enhacing the content with JavaScript
What not to do : In theory , you could use JavaScript to add important content to a web page. Howev ...
- adnroid 打包问题 :compileReleaseJavaWithJavac
今天打包的时候,由于着急.改了些本地的变化就assembleRelease. 然后就报错: compileReleaseJavaWithJavac 后来网上乱找,.... 之后我想到先跑一下,果然是因 ...
- 树&二叉树&哈夫曼树
1.树 需要注意的两点:n(n>=0)表示结点的个数,m表示子树的个数 (1)n>0时,树的根节点是唯一的. (2)m>0时,子树的个数没有限制. 结点的度和树的度 (1)结点的度是 ...
- Eclipse 安装(Neon 版本2016年)---Eclipse教程第01课
Eclipse 最新版本 Eclipse Neon,这个首次鼓励用户使用 Eclipse Installer 来做安装,这是一种由Eclipse Oomph提供的新技术,它通过提供一个很小的安装器来使 ...
- 打包成apk,生成apk文件,上传到网站服务器提供链接下载
Android开发把项目打包成apk: 做完一个Android项目之后,如何才能把项目发布到Internet上供别人使用呢?我们需要将自己的程序打包成Android安装包文件--APK(Android ...
- 【Noise and Probabilistic Target】林轩田机器学习基石
http://beader.me/mlnotebook/section2/noise-and-error.html 上面这个日志总结的已经很好了.这一章的内容,在后面具体的算法中cost functi ...
- .net面试那些事
2014-3-30这天从昆明来到了江苏无锡,一周时间,不同地方不同感触. 在经过长达35小时的火车,在上海南见到了我弟,在经过两小时汽车到了无锡.回想起来....在坐汽车途中,虽然自己已很累,但从上海 ...
- (转\整)UE4游戏优化 多人大地型游戏的优化(四)内存的优化
施主分享随缘,评论随心,@author:白袍小道,当苦无妨 小道暗语: 1.因为小道这里博客目录没自己整,暂时就用随笔目录结构,所以二级目录那啥就忽略了.标题格式大致都是(原or转) 二级目录 (标题 ...