python批量处理多DNS多域名的nslookup解析实现


Posted in Python onJune 28, 2020

利用EXCLE生成CSV文档,批量处理nslookup解析。并保存为CSV文档,方便进行查看:

输入文档格式:

data\domain.csv

python批量处理多DNS多域名的nslookup解析实现

最终输出文档情况:

data\nlookup.csv

python批量处理多DNS多域名的nslookup解析实现

代码:

# coding=gbk
import subprocess
import csv
 
 
def get_nslookup(domain, dns):
  res = subprocess.Popen("nslookup {0} {1}".format(domain, dns), stdin=subprocess.PIPE,
              stdout=subprocess.PIPE).communicate()[0]
  response = res.decode("gbk")
  res_list = response.split("s:")
  row_nslookup = [domain, dns]
  row_ip = res_list[2].split()[:-1]
  row_nslookup.extend(row_ip)
  return row_nslookup
 
 
if __name__ == "__main__":
  file_domain = r'data\domain.csv'    # 输入文件
  file_nslookup = r'data\nslookup.csv'  # 输出文件
  with open(file_domain, 'r', newline='', encoding='gbk') as rf:
    domain_csv = csv.DictReader(rf, dialect=csv.excel)
    domain_list = [row['domain'] for row in domain_csv]
 
  with open(file_domain, 'r', newline='', encoding='gbk') as rf:
    domain_csv = csv.DictReader(rf, dialect=csv.excel)
    dns_list = []
    for row in domain_csv:
      print(row['DNS'])
      if row['DNS'] != '':    # 通常DNS数量少于需要监测的域名数量,做去空处理
        dns_list.append(row['DNS'])
 
  with open(file_nslookup, 'w+', newline='', encoding='gbk') as wf:
    nslookup_csv = csv.writer(wf, dialect=csv.excel)
    header = ['domain', 'DNS', 'nslookup_res...']
    nslookup_csv.writerow(header)
    for domain in domain_list:
      for dns in dns_list:
        print('解析中:域名:{0}___DNS:{1}'.format(domain, dns))
        row_nslookup = get_nslookup(domain, dns)
        nslookup_csv.writerow(row_nslookup)
 
print('执行完毕')

到此这篇关于python批量处理多DNS多域名的nslookup解析实现的文章就介绍到这了,更多相关python 批量多域名nslookup内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
python读取一个目录下所有txt里面的内容方法
Jun 23 Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 Python
Django 视图层(view)的使用
Nov 09 Python
pandas计算最大连续间隔的方法
Jul 04 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
Python turtle绘画象棋棋盘
Aug 21 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
彻底弄懂Python中的回调函数(callback)
Jun 25 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 #Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 #Python
sklearn的predict_proba使用说明
Jun 28 #Python
基于python实现ROC曲线绘制广场解析
Jun 28 #Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 #Python
浅谈sklearn中predict与predict_proba区别
Jun 28 #Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 #Python
You might like
php实现的在线人员函数库
2008/04/09 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
webpack3之loader全解析
2017/10/26 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
vue代理和跨域问题的解决
2018/07/18 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
python连接字符串的方法小结
2015/07/13 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
django的model操作汇整详解
2019/07/26 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
秋天的雨教学反思
2014/04/27 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
教师节随笔
2015/08/15 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android