Simple DNS resolver for asyncio
aiodns provides a simple way for doing asynchronous DNS resolutions with a synchronous looking interface by using pycares.
import asyncio import aiodns loop = asyncio.get_event_loop() resolver = aiodns.DNSResolver(loop=loop) f = resolver.query('google.com','A') result = loop.run_until_complete(f) print(result)
The following query types are supported: A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SRV, TXT.
The API is pretty simple, two functions are provided in the DNSResolver class:
query(host, type): Do a DNS resolution of the given type for the given hostname. It returns an instance of asyncio.Future.
cancel(): Cancel all pending DNS queries. All futures will get DNSError exception set, with ARES_ECANCELLED errno.
Running the test suite
To run the test suite: python test_aiodns.py
aiodns uses the MIT license, check LICENSE file.
Python 3.4 is natively supported. Python 3.3 supported using the asyncio package. Older Python versions(2.6 - 3.2) are supported using trollius.
If you’d like to contribute, fork the project, make a patch and send a pull request. Have a look at the surrounding code and please, make yours look alike :-)
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.