小祎

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  dnspython 是Python实现的一个DNS工具包,支持几乎所有的记录类型,可以用于查询,传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)。可以替代nslookup,dig等工具。

#pip安装
pip3 install dnspython
#最新版本v1.15.0

模块域名解析方法详解

  dnspython提供了大量的DNS处理方法,最常用的是域名查询。

  dnspython提供了一个DNS解析器类------resolver,使用它的 query方法来实现域名的查询功能

  query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)

  qname为查询的域名

  rdtype用来指定RR资源的类型

    A记录,将主机名转换成IP地址

    MX记录,邮件交换记录,定义邮件服务器域名

    CNAME记录,别名记录,实现域名间的映射

    NS记录,标记区域的域名服务器及授权子域

    PTR记录,反向解析,与A记录相反,将IP转换为主机名

    SOA记录,一个起始授权区的定义

  rdclass 用来指定网络类型,如IN,CH,HS,IN为默认

  tcp 指定查询是否启用TCP协议,默认False(不启用)

  source,source_port 指定查询源地址与端口

  raise_on_no_answer 查询无应答是否触发异常

常见解析类型示例脚本

A记录

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author: ccoo2

import dns.resolver
# domain = input("请输入域名地址: ")
domain = 'www.baidu.com'
A = dns.resolver.query(domain,'A')
for i in A.response.answer:
    # print(i)
    for j in i.items:
        print(j)

MX记录

 

posted on 2016-12-12 19:00  小祎  阅读(1210)  评论(0编辑  收藏  举报