Python DNS处理模块

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

模块:dnspython

功能:

  1. 支持所有的记录类型

  2. 可以用于查询、传输并动态更新ZONE信息

  3. 支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)

安装:

1
2
3
4
wget http: //www .dnspython.org /kits/1 .9.4 /dnspython-1 .9.4. tar .gz
tar  -zxvf dnspython-1.9.4. tar .gz
cd  dnspython-1.9.4
python setup.py  install

dnspython提供一个DNS解析器类——resolver,使用query()方法来实现域名的查询功能模块域名解析方法:

Query()方法使用:

1
2
import  dns.resolver
query( self ,qname,rdtype = 1 ,rdclass = 1 ,tcp = False ,source = None ,raise_on_no_answer = True ,source_port = 0 )

rdtype用来指定RR资源的类型,常用的有如下几种:qname为查询的域名。

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

  2. MX记录,邮件交换记录,用于定义邮件服务器的域名

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

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

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

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

rdclass用于指定网络类型,可选的值有:

  1. IN,默认为IN

  2. CH,

  3. HS,

tcp用于指定查询是否启用TCP协议

source和source_port指定查询源地址与端口,默认查询设备IP和0

raise_on_no_answer用于指定当查询无应答时,是否触发异常,默认为True

 

A记录查询方法:

1
2
3
4
5
6
import  dns.resolver
dom = raw_input ( '输入域名地址:' )
A = dns.resolver.query(dom, 'A' # 指定查询类型为A的记录
for  in  A.response.answer:    # 通过response.answer方法获取查询回应信息
     for  in  a.items:          # 遍历回应信息
         print (b.address)


MX记录查询方法:

1
2
3
4
5
import  dns.resolver
dom = raw_input ( '输入域名地址:' )
MX = dns.resolver.query(dom, 'MX' )
for  in  MX:
     print ( 'MX 优先权:' ,a.preference, 'mail 交换器:' ,a.exchange)


NS记录查询方法:

1
2
3
4
5
6
import  dns.resolver
dom = raw_input ( '输入一级域名地址:' )
NS = dns.resolver.query(dom, 'NS' )
for  in  NS.respinse.answer:
     for  in  a.items:
         print (b.to_text())


CNAME记录查询方法:

1
2
3
4
5
6
import  dns.resolver
dom = raw_input ( '输入域名地址:' )
cname = dns.resolver.query(dom, 'CNAME' )
for  in  cname.response.answer:
     for  in  a.items:
         print (b.to_text())

 

DNS域名轮询业务监控:

无标题.png



步骤:

  1. 实现域名的解析,获取域名所有的A记录解析IP列表

  2. 对IP列表进行HTTP级别的探测










本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/2050030,如需转载请自行联系原作者
相关文章
|
2月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
55 4
|
17天前
|
Python
Python Internet 模块
Python Internet 模块。
116 74
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
117 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
16天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
14天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
71 5
|
27天前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
51 7
|
2月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多