{ "info": { "author": "Alastair Houghton", "author_email": "alastair@alastairs-place.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: AsyncIO", "License :: OSI Approved :: MIT License", "Topic :: Internet :: Name Service (DNS)" ], "description": "asyncdns - Pure Python asynchronous DNS for asyncio\n===================================================\n\n.. image:: https://travis-ci.org/al45tair/asyncdns.svg?branch=master\n :target: https://travis-ci.org/al45tair/asyncdns\n\n.. image:: https://readthedocs.org/projects/asyncdns/badge/?version=latest\n :target: http://asyncdns.readthedocs.io/en/latest/?badge=latest\n\nWhat is this?\n=============\n\n``asyncdns`` is a pure Python asynchronous DNS resolver implementation written\non top of asyncio. It doesn't require any external libraries, and it doesn't\nuse threads or blocking functions.\n\nUsage\n=====\n\n``asyncdns`` doesn't have an equivalent to the widely used ``gethostbyname()``\nor ``getaddrinfo()`` functions. Instead, you use it by constructing a\n``Query`` object specifying the DNS query you wish to run, then pass it to a\n``Resolver`` to actually perform the query.\n\nThere are a handful of built-in resolvers, but for demonstration purposes the\neasiest one to use is the ``SmartResolver``, which automatically makes use of\n``/etc/hosts``, multicast DNS and regular DNS as appropriate.\n\nFor instance, do a simple lookup for an A record::\n\n >>> import asyncdns, asyncio\n >>> resolver = asyncdns.SmartResolver()\n >>> loop = asyncio.get_event_loop()\n >>> query = asyncdns.Query('www.example.com', asyncdns.A, asyncdns.IN)\n >>> f = resolver.lookup(query)\n >>> loop.run_until_complete(f)\n >>> print(f.result())\n ;; No error (RD, RA)\n ; 1 answers:\n www.example.com\t54950\tIN\tA\t93.184.216.34\n ; 0 authorities:\n ; 0 additional:\n\nNote that you may or may not want to use ``SmartResolver`` in your code,\ndepending on your requirements - it probably isn't a good idea using multicast\nDNS on an untrusted network, for instance.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://alastairs-place.net/projects/asyncdns", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "asyncdns2", "package_url": "https://pypi.org/project/asyncdns2/", "platform": "", "project_url": "https://pypi.org/project/asyncdns2/", "project_urls": { "Homepage": "https://alastairs-place.net/projects/asyncdns" }, "release_url": "https://pypi.org/project/asyncdns2/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "Pure Python asynchronous DNS via asyncio", "version": "0.1.3" }, "last_serial": 4039189, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0bfe301156396aee33619214e3444cd8", "sha256": "6dfd530b600c392567a5114a9b38f3d855026ca4ed41c1229753fbaece405410" }, "downloads": -1, "filename": "asyncdns2-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0bfe301156396aee33619214e3444cd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18563, "upload_time": "2017-12-07T10:30:08", "url": "https://files.pythonhosted.org/packages/45/65/2071c350f4b06fbb205d41bdd892ea380131e9ea8e3eb57a7a4a87e05f4b/asyncdns2-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fd84fbee81ee2ad51764bd0bcba395d3", "sha256": "d79e8a1bd74e647038f9e3efadd7db0c216f497e2a4256ddbc12937c11bfc971" }, "downloads": -1, "filename": "asyncdns2-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fd84fbee81ee2ad51764bd0bcba395d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19051, "upload_time": "2017-12-07T12:15:16", "url": "https://files.pythonhosted.org/packages/0b/73/59538c66c8cf8f45c501550ba03bc20bf5e19ac1b060ab4c36b2476f1669/asyncdns2-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "81da7154296e686c2ef275c3335b4831", "sha256": "5d28dceb0eaa5eb1680996cf39208792bcd1e034eb8bf15768d4447f0c36ee11" }, "downloads": -1, "filename": "asyncdns2-0.1.2.tar.gz", "has_sig": false, "md5_digest": "81da7154296e686c2ef275c3335b4831", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19065, "upload_time": "2018-01-22T10:27:40", "url": "https://files.pythonhosted.org/packages/19/aa/20d44b8db9f877ed0b30044ed64543b0272d85a8e6cf26b43d2f1cb3c163/asyncdns2-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "2844e669a316765d5664e9e6def1e7e5", "sha256": "8cba069a985f186e00afbd377a8a8e63900922d4d70c2256b6d3a363d278e2ae" }, "downloads": -1, "filename": "asyncdns2-0.1.3.tar.gz", "has_sig": false, "md5_digest": "2844e669a316765d5664e9e6def1e7e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19091, "upload_time": "2018-07-07T17:26:00", "url": "https://files.pythonhosted.org/packages/17/b8/7800831a737c76991eb280251dcf9486652878056a2a43f20ea6c352ffc0/asyncdns2-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2844e669a316765d5664e9e6def1e7e5", "sha256": "8cba069a985f186e00afbd377a8a8e63900922d4d70c2256b6d3a363d278e2ae" }, "downloads": -1, "filename": "asyncdns2-0.1.3.tar.gz", "has_sig": false, "md5_digest": "2844e669a316765d5664e9e6def1e7e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19091, "upload_time": "2018-07-07T17:26:00", "url": "https://files.pythonhosted.org/packages/17/b8/7800831a737c76991eb280251dcf9486652878056a2a43f20ea6c352ffc0/asyncdns2-0.1.3.tar.gz" } ] }