DNSLink协议的Python实现
dnslink的Python项目详细描述
Python的DNSLink
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文件。在
- 项目
标签: