Python DNS处理模块

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

模块: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,如需转载请自行联系原作者
相关文章
|
1月前
|
Python
Python Internet 模块
Python Internet 模块。
125 74
|
2天前
|
运维 Shell 数据库
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
39 20
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
130 63
|
2月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
15天前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
59 3
|
17天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
26 3
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
1月前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
1月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
127 5

相关产品

  • 云解析DNS
  • 推荐镜像

    更多