跳转到主要内容

使用asyncio的纯Python异步DNS

项目描述

asyncdns - 用于asyncio的纯Python异步DNS

https://travis-ci.org/al45tair/asyncdns.svg?branch=master https://readthedocs.org/projects/asyncdns/badge/?version=latest

这是什么?

asyncdns是在asyncio之上编写的纯Python异步DNS解析器实现。它不需要任何外部库,也不使用线程或阻塞函数。

用法

asyncdns没有广泛使用的gethostbyname()getaddrinfo()函数的等效功能。相反,您通过构造一个指定要运行的DNS查询的Query对象来使用它,然后将其传递给一个Resolver来实际执行查询。

有几个内置解析器,但为了演示目的,最容易使用的是SmartResolver,它会自动根据需要使用/etc/hosts、组播DNS和常规DNS。

例如,进行简单的A记录查找

>>> import asyncdns, asyncio
>>> resolver = asyncdns.SmartResolver()
>>> loop = asyncio.get_event_loop()
>>> query = asyncdns.Query('www.example.com', asyncdns.A, asyncdns.IN)
>>> f = resolver.lookup(query)
>>> loop.run_until_complete(f)
>>> print(f.result())
;; No error (RD, RA)
; 1 answers:
www.example.com       54950   IN      A       93.184.216.34
; 0 authorities:
; 0 additional:

请注意,您可能需要或不需要在代码中使用SmartResolver,具体取决于您的需求 - 例如,在不受信任的网络中使用组播DNS可能不是一个好主意。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解更多关于安装软件包的信息。

源分布

asyncdns2-0.1.3.tar.gz (19.1 kB 查看哈希值)

上传于 源码

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面