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

1.模块库安装

pip install dnspython

2.指定DNS服务器

my_resolver = dns.resolver.Resolver()

my_resolver.nameservers = [DNS_Server]

3.query方法的定义

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

参数说明:

qname表示待查询的域名,例如:www.baidu.com;

rdtype用来指定待查询的类型,如A记录、MX记录、NS记录等;

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

tcp用来指定查询时是否使用TCP协议,默认为False(即使用UDP);

source和source_port用于指定查询源地址与端口,默认为查询设备IP和0端口raise_on_no_answer用来指定当查询无应答时是否触发异常。

4.代码实现

#!/usr/bin/env python

# -*- coding: UTF-8 -*-

#说明1:DNS的模块库是dnspython,在电脑上需要安装pip install dnspython

import dns.resolver

#说明2:指定DNS解析的服务器为192.168.0.1,若不指定,则使用网卡配置的DNS地址

DNS_Server="192.168.0.1"

my_resolver = dns.resolver.Resolver()

my_resolver.nameservers = [DNS_Server]

#说明3:定义函数,方便重复利用,指定源地址进行指定域名和记录类型的dns解析

def DNS_Query(domain_name,domain_type,source_ip):

try:

A= my_resolver.query(domain_name,domain_type,source=source_ip)

for i in A.response.answer:

print(i.to_text())

#for j in i.items:

#print(j.to_text())

except Exception as e:

print (domain_name,domain_type,'Error: unable to start thread')

#说明4:指定源IP为192.168.0.2进行www.baidu.com的A记录解析

DNS_Query("www.baidu.com","A","192.168.0.2")

上述代码执行结果

www.baidu.com. 524 IN CNAME www.a.shifen.com.

www.a.shifen.com. 147 IN A 180.101.49.12

www.a.shifen.com. 147 IN A 180.101.49.11

python 指定dns服务器,python实现dns解析相关推荐

  1. Linux centos7 DNS服务器基于bind正反解析服务的搭建

                                                 Linux centos7 DNS服务器基于bind正反解析服务的搭建 DNS的相关基础知识: 一.DNS-- ...

  2. 第12节 DNS服务器基本概念、解析原理及部署——以win2003为例

    DNS服务器基本概念.解析原理及部署 1 DNS概述 1.1 基本概念 1.2 域名的结构--树形结构 2 DNS解析分类及过程 2.1 按查询方式分类: 2.2 按查询的内容分类 2.3 普通用户机 ...

  3. Linux设备配置DNS服务器,实现正向解析和反向解析,实现DNS主从服务器同步,实现批量域名正/反向解析

    本文基于Linux上CentOS 7版本配合bind(named)服务进行演示 一.DNS域名服务器原理及作用等介绍 1.DNS简介: 2.原理简单介绍 3.常见域名后缀 4.DNS域名服务器类型 5 ...

  4. dns服务器zones文件,DNS服务安装与配置

    DNS域名解析服务器,dns服务器程序包名称为bind,程序名named. 安装DNS服务器:yum install bind -y 配置文件: /etc/named.conf        主配置文 ...

  5. linux7配置dns服务器,centOS7搭建DNS服务器配置详解

    写在前言:DNS服务器中 named-checkconf -z /etc/named.conf 命令用来检查所有与DNS有关的配置文件,若有错误,会直接提示,可以代替相关的所有检查命令. 通过yum安 ...

  6. 服务器DNS服务是否自动安装,DNS服务器之一:DNS简介及BIND安装与基本配置 | 旺旺知识库...

    1.什么是DNS? 域名系统(英文:Domain Name System,DNS)是因特网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网.DNS 使用TCP和 ...

  7. dns服务器在电脑上有什么作用,DNS服务器是什么 DNS服务器的作用有哪些【详解】...

    什么是DNS?DNS服务器的作用有哪些? dns是什么? 概括的说DNS 是计算机域名 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所 ...

  8. 重装系统后dns服务器未响应,dns服务器未响应,小编教你dns服务器未响应怎么解决...

    连网时,出现连不上网络,用Windows网络诊断,诊断出的结果是"DNS服务器未响应",遇到这样情况该怎样解决?在使用window系统的电脑上网过程中,常常会遇到DNS服务器未响应 ...

  9. 无线网首选dns服务器怎么设置,dns服务器设置(192.168.1.1的首选dns)

    我们知道影响上网速度的因素有很多,硬件.软件等都是高速上网的基础,每个人都希望自家的网速越来快,在相同的硬件.带宽固定的情况下,如何来择优选择上网参数中的DNS服务器呢? DNS服务是网络参数必不少的 ...

  10. 本地连接dns服务器没响应,dns服务器未响应,教您dns服务器未响应怎么解决

    dns服务器未响应是我们日常使用电脑上网时常遇到的网络故障之一.碰到这个情况的用户太多了,但是基本没有同一的解决方法,笔者当然也经常碰到,尤其是这几天,都快砸电脑了,太影响工作了,没有办法自己动手了, ...

最新文章

  1. iOS如何随意的穿插跳跃,push来pop去
  2. Linux 下面的时区与时间错误修复过程记载(血泪篇)
  3. html5 数据验证,【译】表单数据校验
  4. Bash 脚本 set 命令教程
  5. MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)
  6. Python中超类是如何知道自己被继承的
  7. AGG第十八课 agg::trans_affine仿射变换
  8. 把单元格一分为二_excel如何把一个单元格分成两个 excel单元格拆分为二行
  9. bzoj1861 [Zjoi2006]Book 书架
  10. hibernate之多对多映射操作中间表
  11. Java web系统打包成exe安装文件
  12. vue项目中/deep/的用法-vue-cli中没法覆盖样式解决方法
  13. ASP.NET MVC 远程请求图片 转化成BASE64然后通过HTTP输出流显示
  14. thinkpad T450 重新安装系统 win 10
  15. 关于PHP连接数据库出现:Fatal error: Uncaught Error: Call to undefined function mysql_connect()
  16. c语言流星雨程序下载,c语言 流星雨的实现.doc
  17. 【echarts 中国地图射线版本】vue实现中国地图航线动画效果,地图上添加散点效果【详细注释,通俗易懂】
  18. 通关HCIE-RS新版实验的正确姿势,请查收!
  19. 汽车发动机扭矩,转速,功率
  20. carbondate mysql_CarbonData集成Hive、Spark

热门文章

  1. 如何快速提取手机微信数据?
  2. 和平精英微信和qq不是一个服务器,和平精英qq和微信能一起玩吗 qq微信数据互通吗...
  3. 记一次spring5源码完整编译过程
  4. 简单差分运放公式推倒
  5. 吗 极域软件可以装win10_关于win10企业版在极域电子教室软件 v4.0 2015 豪华版的全屏控制下如何取得自由...
  6. 【cuda】——npp/cuda图像预处理resize+norm对比
  7. postman下载及安装
  8. 反向传播算法带动了业界使用两层神经网络研究的热潮
  9. 神经网络算法入门书籍,bp神经网络算法的优点
  10. 智慧城管系统提高城市综合管理水平