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

 更新时间:2022年08月01日 11:21:17   作者:爱搞网络的皮卡丘​​​​​​​  
这篇文章主要介绍了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自动化域名解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于PyQt6编写一个串口调试助手

    基于PyQt6编写一个串口调试助手

    这篇文章主要为大家详细介绍了如何基于PyQt6编写一个串口调试助手,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • Flask框架踩坑之ajax跨域请求实现

    Flask框架踩坑之ajax跨域请求实现

    这篇文章主要介绍了Flask框架踩坑之ajax跨域请求实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • python安装库的最详细方法(以安装pygame库为例)

    python安装库的最详细方法(以安装pygame库为例)

    在学习了一个学期的python之后,我决定对pygame下手了,下面这篇文章主要给大家介绍了关于python安装库的最详细方法,本文主要以安装pygame库为例,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • python使用matplotlib画出的图怎样放到word中

    python使用matplotlib画出的图怎样放到word中

    这篇文章主要介绍了python使用matplotlib画出的图怎样放到word中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python 列表去重去除空字符的例子

    Python 列表去重去除空字符的例子

    今天小编就为大家分享一篇Python 列表去重去除空字符的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python3 关于pycharm自动导入包快捷设置的方法

    Python3 关于pycharm自动导入包快捷设置的方法

    今天小编就为大家分享一篇Python3 关于pycharm自动导入包快捷设置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python中列表(List) 的三种遍历(序号和值)方法小结

    Python中列表(List) 的三种遍历(序号和值)方法小结

    这篇文章主要介绍了Python中列表(List) 的三种遍历(序号和值)方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 详解如何用Python写个听小说的爬虫

    详解如何用Python写个听小说的爬虫

    在路上经常发现好多人都喜欢用耳机听小说,同事居然可以一整天的带着一只耳机听小说。本文就用Python爬虫实现下载听小说tingchina.com的音频,需要的可以参考一下
    2022-02-02
  • Python中属性和描述符的正确使用

    Python中属性和描述符的正确使用

    Python的描述符和属性是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和心得记录下来,也为正在为了该问题苦恼的朋友提供一个思考问题的参考。
    2016-08-08
  • Python实现windows下模拟按键和鼠标点击的方法

    Python实现windows下模拟按键和鼠标点击的方法

    这篇文章主要介绍了Python实现windows下模拟按键和鼠标点击的方法,涉及Python模拟实现鼠标及键盘事件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论