一名爬虫工程师的运维入门之路:dnspython学习笔记

  • 你们是否跟我一样,不知道什么是DNS,在这里,首先普及一下什么是DNS
    DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
  • dnspython模块简介

    dnspython是Python实现的一个DNS工具包,它支持几乎所有的记录类型,可用于查询、传输并动态更新ZONE信息,同时支持TSIG验证信息和EDNS0。在系统管理方面,我们可以利用它的查询功能来实现DNS服务监控及解析结果的校验,可以代替nslookup和dig工具。
    

    2.方法:

  • A:查询域名的IP源码:

    domain = input('请输入域名地址:')
    
    A = dns.resolver.query(domain, 'A')
    for i in A.response.answer:
        for j in i.items:
            print(j.address)
  • MX:邮件交换记录,定义邮件服务器的域名源码:

    domain = input('请输入域名地址:')
    MX = dns.resolver.query(domain, 'MX')
    for i in MX:
        print('MX preference=', i.preference, 'mail exchanger=',             i.exchange)
    
  • NS:标记区域的域名服务器及授权子域

    print(dns.resolver.query('baidu.com'), 'NS')
  • CNAME:别名记录,实现域名间的映射(方法同上)
  • PTR:反向解析,与A相反,将IP转化为域名(方法同上)
  • SOA:SOA标记,一个起始授权区的定义(方法同上)

你可能感兴趣的:(python)