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

2022-08-01 12:53:25

脚本架构:

    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自动化域名解析内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!