详情介绍
dnspython是Python的一个DNS工具包。它支持几乎所有的记录类型。它可以用于查询、区域转移和动态更新。它支持TSIG验证消息和EDNS0。
dnspython提供了高和低水平访问DNS。高水平类执行查询数据给定的名称、类型和类,并返回一组回答。低水平类允许DNS区域的直接操纵,信息,名字,和记录。
看到几个dnspython可用的方法,访问页面的示例。
dnspython起源在Nominum那里发达促进DNS软件的测试。Nominum慷慨地允许它在bsd风格的开源许可证,并帮助支持其未来发展通过继续采用作者:)。
安装使用方法
这里采用源码的安装方式,最新版本为1.12.0,如下:
# //www.dnspython.org/kits/1.12.0/dnspython-1.12.0.tar.gz
# tar -zxvf dnspython-1.12.0.tar.gz
# cd dnspython-1.12.0
# python setup.py install
对域名进行操作
域名是 DNS 系统中最基本的对象。
dnspython 通过类 dns.name.Name 提供了对域名信息进行封装。
对于类 dns.name.Name 的实例,我们可以进行一些操作。
请看下面的例子(已经准备好了交互式 Python 环境了吗):
>>> import dns.name
>>> n1 = dns.name.from_text('google.com')
>>> print type(n1)
<class 'dns.name.Name'>
首先,我们导入模块 dns.name。
通过函数 dns.name.from_text(),我们很方便的从字符串 google.com 创建了一个类 dns.name.Name 的实例。
随后,我们通过 type() 函数证实了这一点。
让我们再创建几个类 dns.name.Name 的实例。
>>> n0 = dns.name.from_text('com')
>>> n2 = dns.name.from_text('www.google.com')
>>> n3 = dns.name.from_text('www.google.cn')
类 dns.name.Name 的方法 is_subdomain() 和 is_superdomain 可以帮助我们判读一个域名是否是另一个域名的子域或者超域。
>>> n0.is_superdomain(n2)
True
>>> n0.is_superdomain(n3)
False
>>> n2.is_subdomain(n1)
True
>>> n3.is_subdomain(n1)
False
>>> n1.is_subdomain(n1)
True
>>> n1.is_superdomain(n1)
True
通过上面的例子我们看到,com 是 www.google.com 的 super domain,不是 www.google.cn 的 super domain。反过来说,www.google.com是 com 的 subdoamin 成立,而 www.google.cn 是 com 的 subdomain 不成立。
我们还意识到一个 dns.name.Name 总是自己的 super domain 和 subdomain。
让我们看看如何处理域名间的相对关系:
>>> r1 = n2.relativize(n1)
>>> print r1
www
>>> r2 = n2 - n1
>>> r1 == r2
True
我们看到,通过 relativize() 方法可以获得一个域名相对其 superdomain 的部分,例如 n2 相对 n1 的部分是 www。
我们也可以使用减(-)操作得到等价结果。那么,是否可以使用加(+)操作处理域名呢?
>>> r1 + n1 == n2
True
答案是肯定的。
收起
dnspython 增删改查记录
操作
dic.clear() 清除字典
dic.keys() 获取键的列表
dic.values() 获取值的列表
dic.copy() 复制字典
dic.pop(k) 删除键k
dic.get(k) 得到键k的值
dic.update() 更新成员,若成员不在,相当于添加
dic.items() 获得由键和值组成的列表
dic.popitem() 随机删除一个键值对,并将其返回
实例
d = {'name':'LBJ','age':23,'addr':'BeiJing'}
print 'd=',d #显示结果:d= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
d.clear() ;
print 'd=',d #显示结果:d= {}
d.update({'name':'LBJ','age':23,'addr':'BeiJing'})
print 'd=',d #显示结果:d= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
print 'd.keys()=',d.keys() #显示结果:d.keys()= ['age', 'name', 'addr']
print 'd.values()=',d.values() #显示结果:d.values()= [23, 'LBJ', 'BeiJing']
d2 = d.copy()
print 'd2=',d2 #显示结果:d2= {'age': 23, 'name': 'LBJ', 'addr': 'BeiJing'}
print 'd.popitem()=',d.popitem() #显示结果:d.popitem()= ('age', 23)
print 'd=',d #显示结果:d= {'name': 'LBJ', 'addr': 'BeiJing'}
下载地址
人气软件

Java SE Development Kit(JDK) 17.0.15 官方正式版 Win64
JDK11(Java SE Development Kit 11) v11.0.27 x64 LTS 长期支持
EXT界面图形工具Ext Designer 特别版
JetBrains Pycharm Pro 2025.1 中文专业免费正式版(附汉化包+安
intellij IDEA v2025.1 社区版 官方中文正式版(附汉化包+安装方
myeclipse2016破解工具 v1.0 破解补丁(附安装教程)
Java SE Development Kit(JDK1.8) jdk-8u451-windows-x64.exe 64
Java SE Development Kit(JDK) 17.0.15 官方正式版 Linux64
安卓集成开发工具Android Studio 2024.3.1.13 + SDK 2024.1.09 W
Zend Studio 10.1.0与10.0.1 破解文件与注册码打包
相关文章
-
Python 3.2.3 官方文档(中文PDF版)Python3.2.3,官方文档翻译,python3.2,更改方法了,并不向下兼容...
-
python 3.4 入门指南 官方中文版 pdf扫描版[2MB]Python是一门简单易学,功能强大的编程语言。它具有高效的高级数据结构和简单而有效的面向对象编程方法,本平台提供python3.4入门指南pdf下载...
-
编写高质量代码:改善Python程序的91个建议 (张颖/赖勇浩) 中文pdf扫描版[54MB]本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python...
-
Python计算与编程实践:多媒体方法(原书第2版) 迷你书 中文pdf扫描版[3MB]这本书是一本别出心裁的程序设计入门教程,以Python数字多媒体编程为主线,依次讲解了图像、声音、文本和电影的处理,其中穿插介绍了大量的计算机程序设计基础知识...
-
Python编程实践 中文pdf扫描版[60MB] 附代码python编程实践通过一些短小精悍的交互式python脚本帮助学生进行练习,并在这个过程中掌握诸如数据结构、排序和搜索算法、面向对象编程、数据库访问、图形用户界面等基本概...
-
Python袖珍指南 第5版 (美)卢茨(Mark Lutz) 中文pdf扫描版[26MB]完整版Python袖珍指南(第5版)概括了Python的类型、语句、专用方法名、内建函数、异常、常用标准库模块和其他简洁的Python工具。本书旨在为开发者提供一个简明的参考工具...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的python dns解析文件(dnspython) v1.12.0 最新版(windows+linux版)资源来源互联网,版权归该下载资源的合法拥有者所有。



























