DNSLink协议的Python实现

dnslink的Python项目详细描述


Python的DNSLink

versiondownloadslicensepython

linux buildwindows buildcoveragequality

DNSLink协议的Python实现。在

说明

DNSLink是一个非常简单的协议,可以直接从DNS链接内容和服务。DNSLink利用DNS强大的分布式体系结构为各种需要internet规模的可变名称或指针的系统提供支持。有关详细信息,请参见DNSLink website。在

这个包提供了一种简单的方法来获取和解析任何域名的DNSLink TXT记录。在

安装

要求

DNSLink需要python3.4或更高版本。在

从PyPI

建议安装DNSLink的方法是使用PIP从PyPI中安装。在

pip install dnslink

来源

或者,也可以从源代码安装它。在

^{pr2}$

使用

您可以使用resolve函数来解析特定域的DNSLink记录。它首先尝试解析域的_dnslink子域,如果没有找到记录,则返回主域。在

注意:为了举例说明,我们假设域正在使用这个示例DNSLink配置。在

$ dig +short TXT example.com
dnslink=/ipfs/QmaYRVyPKpN8FXy9HS1t9Zhtjo4RpYXgiuNj1ins9fiLuW
dnslink=/ipns/website.ipfs.io

$ dig +short TXT foo.com
dnslink=/dnslink/bar.com

$ dig +short TXT bar.com
dnslink=/ipfs/QmaYRVyPKpN8FXy9HS1t9Zhtjo4RpYXgiuNj1ins9fiLuW

该函数将域名作为第一个(domain)参数,并返回该域的所有DNSLink记录的列表。在

importdnslinkdomain='example.com'records=dnslink.resolve(domain=domain)forrecordinrecords:print(record)# /ipfs/QmaYRVyPKpN8FXy9HS1t9Zhtjo4RpYXgiuNj1ins9fiLuW# /ipns/website.ipfs.io

也可以只获取包含特定协议类型的DNSLink记录。可以将其指定为第二个(protocol)参数。在

importdnslinkdomain='example.com'protocol='ipns'records=dnslink.resolve(domain=domain,protocol=protocol)forrecordinrecords:print(record)# /ipns/website.ipfs.io

正如RFC1034指定的,DNSLinks也支持链接。如果记录的协议类型是dnslink,它将尝试解析在其中指定的域的记录。默认的递归限制是16。可以用第三个(depth)参数更改它。当达到递归限制时,将按原样返回一个记录,而不进行任何将来的解析。在

importdnslinkprint(dnslink.resolve(domain='foo.com')[0])# /ipfs/QmaYRVyPKpN8FXy9HS1t9Zhtjo4RpYXgiuNj1ins9fiLuWprint(dnslink.resolve(domain='foo.com',depth=1)[0])# /dnslink/bar.com

可以将自定义DNSPython解析器对象指定为第四个(resolver)参数。这可用于提供自定义冲突解决程序配置。在

importdns.resolverimportdnslinkdomain='example.com'resolver=dns.resolver.Resolver()records=dnslink.resolve(domain=domain,resolver=resolver)forrecordinrecords:print(record)# /ipfs/QmaYRVyPKpN8FXy9HS1t9Zhtjo4RpYXgiuNj1ins9fiLuW# /ipns/website.ipfs.io

版本控制

此库使用SemVer进行版本控制。有关可用版本,请参阅此存储库上的the tags。在

许可证

这个图书馆是根据麻省理工学院的许可证授权的。有关详细信息,请参阅LICENSE文件。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null