Python实现自动化域名批量解析分享

脚本架构:

  • domain_test.py:批量解析运行主程序
  • DomainResult.txt:域名解析结果文件
  • domains.txt:解析的域名文件

实现代码如下:

# coding:utf-8
import socket
import subprocess
import re

def get_host_from_file(file_path):
with open(file_path, 'r') as fr:
domains = fr.readlines()
result = []
for url in domains:
url = url.strip()
try:
ips = socket.gethostbyname_ex(url)[-1]
result.append(url + '\t' + ';'.join(ips) + '\t' + 'ping' + '\n')
except Exception as e:
print(url, e)
with open('./domain2ip.txt', 'w') as fw:
fw.writelines(result)

def get_host_from_url(url):
try:
ips = socket.gethostbyname_ex(url)[-1]
return url + '\t' + ';'.join(ips) + '\t' + 'ping' + '\n' except Exception as e:
print(url, e)
return url + '\t' + 'none' + '\n'
def dig_test(file_name, dns_name):
dig_command = 'dig ' ip_result = []
if dns_name:
dig_command += dns_name + ' ' with open(file_name) as fr:
domains = fr.readlines()
for ui, full_url in enumerate(domains):
ips = []
full_url = full_url.strip()
try:
result = subprocess.Popen(dig_command + full_url, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
except Exception as e:
print(full_url, e)
else:
results = str(result.stdout.read()).split('\\n')
for temp in results:
if full_url in temp and 'IN' in temp:
ip = re.match(r'.*\\t([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*', temp)
if ip and ip.group(1) not in ips:
ips.append(ip.group(1))
if 'AUTHORITY SECTION' in temp:
break if ips:
temp = full_url + '\t' + ';'.join(ips) + '\t' + 'dig' + '\n' else:
temp = get_host_from_url(full_url)
print(ui, temp)
ip_result.append(temp)
#解析完成后,生成结果文件
with open('domains.txt', 'w') as fw:
fw.writelines(ip_result)
if __name__ == '__main__':
# 先使用dig,失败时使用ping获取域名ip,可指定dns,如@114.114.114.114
dig_test(file_name='DomainResults.txt', dns_name='')

演示结果:

到此这篇关于Python实现自动化域名批量解析的文章就介绍到这了,更多相关Python自动化域名解析内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python自动化实战之接口请求的实现

    目录 使用 Python 发送 请求 Python 发送请求的方式 requests 库的配置 天行数据 - 空气质量接口 利用 requests 发送查询 空气质量接口 请求 在前文说过,如果想要更好的做接口测试,我们要利用自己的代码基础与代码优势,所以该章节不会再介绍商业化的.通用的接口测试工具,重点介绍如何通过 python 编码来实现我们的接口测试以及通过 Pycharm 的实际应用编写一个简单接口测试. 使用 Python 发送 请求 应为从最开始写这个 Python全栈系列 一直使用

  • Python自动化办公之Word转PDF的实现

    目录 pdf 工具包 - pdfkit html 转 pdf 网址 转 pdf 字符串生成pdf 结合 pydocx 将 word 转 html 再转 pdf 该章节我们将要学习如何将 word 文件转为 PDF文件,其实网上有很多种生成 PDF 的教程,不过绝大多数都是以 windows 为主的,并且兼容有很多的问题.windows.mac.linux 同时兼容的情况比较少,所以今天的章节我们就来学习一下如何在 windows.mac.linux 三种系统中都可以生成 PDF 的解决方案. p

  • python和Appium移动端多设备自动化测试框架实现

    目录 前言: 一.流程图 二.appium服务 三.连接测试设备 四.元素封装 五.运行 前言: 本篇文章主要介绍基于pytest和Appium框架,支持Android和iOS功能自动化的测试框架.同时该框架支持多设备测试,并利用allure库,生成可视化测试报告.本框架主要涉及的内容包括:python3.pytest.appium.allure等,此处已假设你具备相应的基础知识,同时已有可以随时运行的测试环境(iOS设备的测试只能在Mac系统中执行,没有Mac的朋友们,可以看看不执行) 一.流

  • Python自动化办公之图片转PDF的实现

    安装的方式很常规,直接使用pip安装就行了. pip install fpdf 将需要使用的三方模块导入进来 from fpdf import FPDF # PDF文档对象操作库 import os # 文件路径操作库 初始化PDF文档对象 PDF = FPDF() 关闭自动分页 PDF.set_auto_page_break(0) 设置需要转换的批量图片路径 path = r'C:/imgs' 遍历图片到数组 images = [i for i in os.listdir(path)] 设置多

  • 使用python的turtle库画一个冰墩墩效果

    目录 设置一个画布 画左手和手内 画轮廓和其他部分 画细节(眼睛.鼻子.嘴巴等) 画头部彩虹 画五环标志 使用python画一个冰墩墩先看效果图 设置一个画布 import turtle turtle.setup(800,600) turtle.speed(10) 画左手和手内 turtle.penup() turtle.goto(177,112) turtle.pencolor('lightgray') turtle.pensize(3) turtle.fillcolor('white') t

  • Python实现Harbor私有镜像仓库垃圾自动化清理详情

    目录 一.编写Python脚本 二.执行Python脚本 一.编写Python脚本 [root@lidabai ~]# vim harbor_clearimage.py # -*- coding:utf-8 -*- import requests from requests.auth import HTTPBasicAuth from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry im

  • Python实现自动化处理每月考勤缺卡数据

    目录 一.效果展示 1.实现效果 2.原始数据模板 二.代码详解 1.导入库 2.定义时间处理函数 3.读取数据调整日期格式 4.计算工作日天数 5.获取缺卡名单 不管是上学还是上班都会统计考勤,有些学校或公司会对每月缺卡次数过多(比如三次以上)的人员进行处罚. 有些公司还规定对于基层员工要在工作日提交日志.管理人员要提交周报或月报,对于少提交的人员要进行处罚. 如果公司HR逐个对人员的日志或缺卡数据进行处理,将是一项耗时且无聊的工作. 本文提供了自动处理考勤和日志缺失的方法. 不用安装Pyth

  • Python实现自动化域名批量解析分享

    脚本架构: domain_test.py:批量解析运行主程序 DomainResult.txt:域名解析结果文件 domains.txt:解析的域名文件 实现代码如下: # coding:utf-8 import socket import subprocess import re def get_host_from_file(file_path): with open(file_path, 'r') as fr: domains = fr.readlines() result = [] for

  • Python接口自动化判断元素原理解析

    这篇文章主要介绍了Python接口自动化判断元素原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景: 在做接口自动化时,通常会判断接口返回中的数据信息,与数据库中返回的数据信息是否一致,比如:将接口返回信息的用户姓名存放到一个列表中,将数据库返回的用户姓名存放到另一个列表中,这时需要判断两个列表是否一致,如果不一致,将不同的元素信息分别回写到excel文件中,可以一目了然的看出哪些信息返回的不正确. 下列代码中直接存放列表信息,比较如

  • Python自动化之批量处理工作簿和工作表

    一.批量新建并保存工作簿 import xlwings as xw # 导入库 # 启动Excel程序,但不新建工作簿 app = xw.App(visible = True, add_book = False) for i in range(6): workbook = app.books.add() # 新建工作簿 workbook.save(f'e:\\file\\test{i}.xlsx') # 保存新建的多个工作簿 workbook.close() # 关闭当前工作簿 app.quit

  • python接口自动化测试数据和代码分离解析

    目录 common中存放的是整个项目中公共使用的封装方法 数据分离的第一步先找到工程项目路径 数据分离的第二步封装一个读取yml文件的函数或类方法 数据分离的第三步测试用例中引入数据并运行 common中存放的是整个项目中公共使用的封装方法 从工程目录上可以看到区分 datas中专门存放测试数据(yml文件) cases中专门集中存放测试用例 ... 数据分离的第一步先找到工程项目路径 # -*- encoding: utf-8 -*- """ @__Software__:

  • Python自动化之批量生成含指定数据的word文档

    目录 一.需求说明 二.开始动手动脑 三.总结 一.需求说明 在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一类比较常见的场景:文档中大部分文字固定不变,小部分内容需要修改. 这时我们会机械的重复打开.修改.保存文档等一系列操作,内容少还可勉强接受,内容一旦多了,心里难免会心浮气躁. 今天我要给大家介绍一个秘密武器-docxtpl开发包,有了这个只需写一份模板,其他的都交给电脑自己进行. 首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具. 如果你还

  • Python模块域名dnspython解析

    目录 dnspython源码安装 python模块域名解析方法讲解 总结 dnspython是python实现的一个DNS工具包,它支持记录类型.查询.传输并动态更新ZONE信息等等.据说dnspython可以代替dig.nslookup等工具.下面我们就来介绍dnspython模块的使用. dnspython源码安装 这里介绍一下dnspython模块的安装,采用源码的安装方式,目前使用的版本是1.16.0 如下安装: wget https://www.dnspython.org/kits/1

  • Python实现Youku视频批量下载功能

    前段时间由于收集视频数据的需要,自己捣鼓了一个YouKu视频批量下载的程序.东西虽然简单,但还挺实用的,拿出来分享给大家. 版本:Python2.7+BeautifulSoup3.2.1 import urllib,urllib2,sys,os from BeautifulSoup import BeautifulSoup import itertools,re url_i =1 pic_num = 1 #自己定义的引号格式转换函数 def _en_to_cn(str): obj = itert

  • 使用python远程操作linux过程解析

    这篇文章主要介绍了使用python远程操作linux过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在云服务测试中,往往需要我们进入云服务内容进行相关内容的测试.这测试可以使用平台自身的noVNC.外部辅助xshell等工具连接到云服务内部进行测试. 但是在如此反复的测试操作中,就需要用到自动化测试方法去解决这方面的需求. 在python中我们可以通过第三方库paramiko,对linux的云服务器进行操作. 如下命令先行安装 pip

  • Python接口自动化浅析yaml配置文件原理及用法

    目录 一.yaml介绍及使用 01 yaml简介 02 yaml语法规则 03 yaml数据结构 对象 数组 纯量 二.yaml配置文件的使用 01 yaml配置文件准备 02 yaml配置文件格式校验 三.yaml配置文件读写 01 安装pyYaml 02 yaml模块源码解析 load: dump: 03 读写yaml配置文件 在上一篇Python接口自动化测试系列文章:Python接口自动化浅析数据驱动原理,主要介绍openpyxl操作excel,结合ddt实现数据驱动. 在自动化过程中,

  • Python接口自动化浅析如何处理接口依赖

    在前面的Python接口自动化测试系列文章:Python接口自动化浅析logging封装及实战操作, 其中介绍了将logging常用配置放入yaml配置文件.logging日志封装及结合登录用例讲解日志如何在接口测试中运用. 以下主要介绍如何提取token.将token作为类属性全局调用及充值接口如何携带token进行请求. 一.场景说明 在面试接口自动化时,经常会问,其他接口调用的前提条件是当前用户必须是登录状态,如何处理接口依赖? 在此之前我们介绍过session管理器保存会话状态. 如果接

随机推荐