异步蟒
asyncdns2的Python项目详细描述
这是什么?
asyncdns是编写的纯python异步dns解析器实现 在Asyncio之上。它不需要任何外部库,也不需要 使用线程或阻塞函数。
用法
asyncdns与广泛使用的^{tt3}不等价$ 或getaddrinfo()函数。相反,您可以通过构造 Query对象指定要运行的DNS查询,然后将其传递给 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。