Python入门之——DNS处理模块dnspython(dnspy使用)

网友投稿 736 2022-08-23


Python入门之——DNS处理模块dnspython(dnspy使用)

dnspython(tar -zxvf dnspython-1.9.4.tar.gz# cd dnspython-1.9.4# python setup.py install

模块域名解析方法详解

dnspython模块提供了大量的DNS处理方法,最常用的方法是域名查询。dnspython提供了一个DNS解析器类-resolver,使用它的query方法来实现域名的查询功能。query方法的定义如下:​​query(self, qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0)​​ 其中,qname参数为查询的域名。rdtype参数用来指定RR资源的类型,常用的有以下几种:

rdclass参数用于指定网络类型,可选的值有IN、CH与HS,其中IN为默认,使用最广泛。tcp参数用于指定查询是否启用TCP协议,默认为False(不启用)。source与source_port参数作为指定查询源地址与端口,默认值为查询设备IP地址和0。raise_on_no_answer参数用于指定当查询无应答时是否触发异常,默认为True。

常用解析类型示例说明

利用dnspython的dns.resolver.query方法可以简单实现这些DNS类型(A、MX、NS、CNAME等)的查询。

DNS域名轮询业务监控

大部分的DNS解析都是一个域名对应一个IP地址,但是通过DNS轮询技术可以做到一个域名对应多个IP,从而实现最简单且高效的负载平衡,不过此方案最大的弊端是目标主机不可用时无法自动剔除,因此做好业务主机的服务可用监控至关重要。本实例通过分析当前域名的解析IP,再结合服务端口探测来实现自动监控,在域名解析中添加、删除IP时,无须对监控脚本进行更改。

1 实现域名解析,获取域名所有的A记录解析IP列表;对IP列表进行HTTP级别的探测。

2 第一步通过dns.resolver.query()方法获取业务域名A记录信息,查询出所有IP地址列表,再使用httplib模块的request()方法以GET方式请求监控页面,监控业务所有服务的IP是否服务正常。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python入门之——IPy模块(python ip模块)
下一篇:Mybatis全局配置及映射关系的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~