{ "info": { "author": "Gabriel Iovino", "author_email": "giovino@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# dnsdb\n\nPython client for Farsight Security's [DNSDB API](https://api.dnsdb.info/).\n\n## Features\n\n * supports all capabilities of [DNSDB API](https://api.dnsdb.info/)\n * sorting of results by last_seen\n * convert epoch to ISO 8601\n * normalize results with regard sensor or zone observation\n * supports the caching of DNSDB API results\n * returns an object with the following attributes:\n * records\n * status code\n * error\n * quota\n * cache\n * CLI named `dnsdb`\n\n## Installation\n\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install [dnsdb](https://pypi.org/project/dnsdb/).\n\n```bash\npip install dnsdb\n```\n\n## Usage\n\n### Setup\n```text\n>>> from dnsdb import Dnsdb\n\n>>> api_key=\"12345\"\n>>> dnsdb = Dnsdb(api_key)\n```\n\n### Example 1\n```text\n>>> result = dnsdb.search(name=\"www.example.com\")\n\n>>> pprint(result.status_code)\n200\n\n>>> pprint(result.error)\nNone\n\n>>> pprint(result.records[0])\n{'bailiwick': 'example.com.',\n 'count': 4213726,\n 'rdata': ['93.184.216.34'],\n 'rrname': 'www.example.com.',\n 'rrtype': 'A',\n 'source': 'sensor',\n 'time_first': '2014-12-10T00:19:18Z',\n 'time_last': '2019-03-05T14:37:31Z'}\n \n>>> pprint(result.quota)\n{'expires': None,\n 'limit': '1000000',\n 'remaining': '999970',\n 'reset': '1551830400',\n 'results_max': None}\n```\n\n### Example 2\n```text\n>>> result = dnsdb.search(name=\"hello.example.com\")\n\n>>> pprint(result.status_code)\n404\n\n>>> pprint(result.error)\n{'code': 404, 'message': 'Error: no results found for query.'}\n\n>>> pprint(result.records)\nNone\n\n>>> pprint(result.quota)\n{'expires': None,\n 'limit': '1000000',\n 'remaining': '999969',\n 'reset': '1551830400',\n 'results_max': None}\n```\n\n## More Usage\n```text\nfrom dnsdb import Dnsdb\n\napi_key=\"12345\"\ndnsdb = Dnsdb(api_key)\ndnsdb = Dnsdb(api_key, cache=True)\ndnsdb = Dnsdb(api_key, cache=True, cache_timeout=900)\ndnsdb = Dnsdb(api_key, cache=True, cache_location=\"/tmp/dnsdb-cache\")\n\nresult = dnsdb.search(name=\"fsi.io\")\nresult = dnsdb.search(name=\"mail.fsi.io\", inverse=True)\nresult = dnsdb.search(ip=\"104.244.14.108\")\nresult = dnsdb.search(ip=\"104.244.14.0/24\")\nresult = dnsdb.search(ip=\"2620:11c:f008::108\")\nresult = dnsdb.search(hexadecimal=\"36757a35\")\nresult = dnsdb.search(name=\"fsi.io\", type=\"A\")\nresult = dnsdb.search(name=\"farsightsecurity.com\", bailiwick=\"com.\")\nresult = dnsdb.search(name=\"fsi.io\", wildcard_left=True)\nresult = dnsdb.search(name=\"fsi\", wildcard_right=True)\nresult = dnsdb.search(name=\"fsi.io\", sort=False)\nresult = dnsdb.search(name=\"fsi.io\", remote_limit=150000, return_limit=1000)\nresult = dnsdb.search(name=\"fsi.io\", time_last_after=\"2019-01-01\")\nresult = dnsdb.search(name=\"fsi.io\", time_last_after=\"2019-01-01T00:00:00Z\")\nresult = dnsdb.search(name=\"fsi.io\", epoch=True, time_last_after=1546300800)\nresult = dnsdb.search(name=\"fsi.io\", epoch=True)\nresult = dnsdb.quota()\n```\n\n## CLI\n\nThe `dnsdb` module includes CLI client\n\n## Help\n\n```test\n$ dnsdb -h\nusage: dnsdb [-h] (-n NAME | -i IP | --hex HEXADECIMAL) [-t TYPE]\n [-b BAILIWICK] [-r] [--wildcard-left] [--wildcard-right] [--sort]\n [--epoch] [-f {csv,json,jsonp}] [--return-limit RETURN_LIMIT]\n [--remote-limit REMOTE_LIMIT] [--first-before TIME_FIRST_BEFORE]\n [--first-after TIME_FIRST_AFTER] [--last-before TIME_LAST_BEFORE]\n [--last_after TIME_LAST_AFTER] [--cache]\n [--cache-location CACHE_LOCATION] [--cache-timeout CACHE_TIMEOUT]\n [--apikey API_KEY] [--server SERVER] [-v] [-c CONFIG] [--version]\n\nCLI client for DNSDB\n\noptional arguments:\n -h, --help show this help message and exit\n -n NAME, --name NAME fully qualified domain mame\n -i IP, --ip IP IPv4 or IPv6 address, CIDR notation is valid\n --hex HEXADECIMAL hexadecimal digits specifying a raw octet string\n -t TYPE, --type TYPE dns resource record types (ANY, A, MX, SIG, etc)\n -b BAILIWICK, --bailiwick BAILIWICK\n a label in a fqdn, not valid for inverse queries\n -r, --inverse search for names resolving to names (e.g. MX, NS,\n CNAME, etc)\n --wildcard-left wildcard search to the left of a dot in a domain name\n --wildcard-right wildcard search to the right of a dot in a domain name\n --sort sort results by time last\n --epoch return timestamps in epoch\n -f {csv,json,jsonp}, --format {csv,json,jsonp}\n output formats\n --return-limit RETURN_LIMIT\n number of client side results returned\n --remote-limit REMOTE_LIMIT\n number of server side results returned\n --first-before TIME_FIRST_BEFORE\n server side filter for time first before\n --first-after TIME_FIRST_AFTER\n server side filter for time first after\n --last-before TIME_LAST_BEFORE\n server side filter for time last before\n --last_after TIME_LAST_AFTER\n server side filter for time last after\n --cache Use cached results\n --cache-location CACHE_LOCATION\n Path to cache\n --cache-timeout CACHE_TIMEOUT\n Timeout in seconds\n --apikey API_KEY DNSDB API key\n --server SERVER Server URL\n -v, --verbose Set the verbosity level\n -c CONFIG, --config CONFIG\n Path to config file\n --version show program's version number and exit\n\nTime format options: yyyy (2016), yyyy-mm (2016-01), yyyy-mm-dd (2016-01-01),\nyyyymmdd (20160101), yyyymmddThh (20160101T12), yyyy-mm-ddThh:mm:ss-hh:mm\n(2016-01-01T00:00:00-00:00)\n```\n\n### Configuration file\n\n### Minimal\n```text\n$ vim ~/.dnsdb.ini\n\n[api.dnsdb.info]\napi_key=12345\n```\n\n### Full\n\n```text\n$ vim ~/.dnsdb.ini\n\n[api.dnsdb.info]\napi_key=12345\nserver=https://api.dnsdb.info\ncache=True\ncache_location=/tmp/dnsdb-cache\ncache_timeout=900\n```\n\n### Usage\n\n```text\n$ dnsdb -n www.fsi.io\n$ dnsdb -i 104.244.14.108 -f csv\n```\n\n## Contributing\nPull requests are welcome; for major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to create and update tests as appropriate.\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/giovino/fsi-dnsdb", "keywords": "security", "license": "MIT", "maintainer": "Gabriel Iovino", "maintainer_email": "giovino@gmail.com", "name": "dnsdb", "package_url": "https://pypi.org/project/dnsdb/", "platform": "", "project_url": "https://pypi.org/project/dnsdb/", "project_urls": { "Homepage": "https://github.com/giovino/fsi-dnsdb", "Repository": "https://github.com/giovino/fsi-dnsdb" }, "release_url": "https://pypi.org/project/dnsdb/0.2.5/", "requires_dist": [ "requests (>=2.21,<3.0)", "python-dateutil (>=2.8,<3.0)", "diskcache (>=3.1,<4.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Python client for Farsight Security's DNSDB API", "version": "0.2.5" }, "last_serial": 5223508, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "389b3e08e9cc6331180748177488c2a3", "sha256": "498d521fdbfaf8671730c1583a5322f906ea201f81719c188bc9a3f0f32889bb" }, "downloads": -1, "filename": "dnsdb-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "389b3e08e9cc6331180748177488c2a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 15853, "upload_time": "2019-01-16T15:07:29", "url": "https://files.pythonhosted.org/packages/b1/55/6551052b03acfd458761b3206cbc7ab8abd3881c10357473ab83b9ce3151/dnsdb-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f58c25a0c87172570025a814d45efc25", "sha256": "d765156ec8106abb391d9e2ade7194d2ace6cf1ad1fa69e31014cb57eaa34ac5" }, "downloads": -1, "filename": "dnsdb-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f58c25a0c87172570025a814d45efc25", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5109, "upload_time": "2019-01-16T15:07:30", "url": "https://files.pythonhosted.org/packages/7f/21/23a134d02408ee5290d90e46e7613d5413500ecf9d7a4bc7eba020ba1a2f/dnsdb-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "57de251b9a1969d67b5b8881eee2c227", "sha256": "908f88677307ac865b6ce7571dd56aea121abafc11c3beac796bc08beb60ba4f" }, "downloads": -1, "filename": "dnsdb-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "57de251b9a1969d67b5b8881eee2c227", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 16587, "upload_time": "2019-01-16T15:44:36", "url": "https://files.pythonhosted.org/packages/b0/26/342ddc6cd946e6a9445ddaef8f7530c2f3908ef0aedbb65accb6c67e3b72/dnsdb-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fa1bf942bb298eb01058f6ad0b39cef", "sha256": "da517e213552fa9aa9b62459bfb22b93324325e6a1f24bbb64abb17e259e950e" }, "downloads": -1, "filename": "dnsdb-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7fa1bf942bb298eb01058f6ad0b39cef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5931, "upload_time": "2019-01-16T15:44:38", "url": "https://files.pythonhosted.org/packages/07/17/ad042ee080543ca792c39fdbe99024555285ec912610a07f0364b230c50e/dnsdb-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "3a86f24f443c03f51be8c8a387538191", "sha256": "25234045a986b02d4c650556f881060946029925d95a1a83410694d1f3c4c47f" }, "downloads": -1, "filename": "dnsdb-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3a86f24f443c03f51be8c8a387538191", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 16581, "upload_time": "2019-01-16T15:55:55", "url": "https://files.pythonhosted.org/packages/ca/98/7bf9084f29ad7fc4994a1a940ce0b5c262e6638dbe7476e2f790f50ea236/dnsdb-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "705e98be3e6b08ca666c5d51c8dea997", "sha256": "538d4a7ea56795a47a38b9495445e5a5dc42a0f0d7318989be6becde08852830" }, "downloads": -1, "filename": "dnsdb-0.1.2.tar.gz", "has_sig": false, "md5_digest": "705e98be3e6b08ca666c5d51c8dea997", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5929, "upload_time": "2019-01-16T15:55:57", "url": "https://files.pythonhosted.org/packages/56/a7/a63b3d15383685be27e2a79771a5bf99c36e91932a6ecff0c0bb1e1c0fbd/dnsdb-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c973a16f074bcb57888327253d9204ac", "sha256": "fe5d1570e476fcba1f74259a255558df4dd66c3c207c941ad2c7d41efa05021f" }, "downloads": -1, "filename": "dnsdb-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c973a16f074bcb57888327253d9204ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 18965, "upload_time": "2019-03-05T20:06:01", "url": "https://files.pythonhosted.org/packages/6e/d1/9bcf00b82305c18b040f94a9409ba62a834d1a41815917e0acc087ff6e07/dnsdb-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f99bb4a636e9a2ebfbe0fc7ea3ef78a", "sha256": "0c4e03bed0ce78b527a8cf13a760e3f4a744fe4e7b16460d0385ad41fe7d1c11" }, "downloads": -1, "filename": "dnsdb-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4f99bb4a636e9a2ebfbe0fc7ea3ef78a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 6864, "upload_time": "2019-03-05T20:06:04", "url": "https://files.pythonhosted.org/packages/2a/f2/71e85aaf060277a2c719ede081d591bbc14e93d771e1db6eb56f1c025e72/dnsdb-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ede7f06ef0c076c614a9332c34a3d93e", "sha256": "a52e2aaf25ad3b2eb5c1ed206946c4eafbb15f515b0dfa805c38baa81eec693e" }, "downloads": -1, "filename": "dnsdb-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ede7f06ef0c076c614a9332c34a3d93e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 19692, "upload_time": "2019-03-07T16:39:01", "url": "https://files.pythonhosted.org/packages/9a/2c/984c60e6ccb31562babd7a0c8dac73593ae3701586db65846ad96a9570f3/dnsdb-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf11f38fbd83b45caa15d6a4e17f8779", "sha256": "1035afbeca1d0256c6d7f1a8183de054964a7a024cd5f6d0d60ceef94c08888c" }, "downloads": -1, "filename": "dnsdb-0.2.1.tar.gz", "has_sig": false, "md5_digest": "bf11f38fbd83b45caa15d6a4e17f8779", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 7100, "upload_time": "2019-03-07T16:39:02", "url": "https://files.pythonhosted.org/packages/ff/fd/fd38b46a27aa3d43f5d9814e9ced8636539e572dcbf889179b50ab1ab28e/dnsdb-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1ab47e55ec759600a1cd86bf697bf4eb", "sha256": "1c54f8766a0743b2c28b1bc33082c1d19cac7fa2932dfd38417cf69e43ab6789" }, "downloads": -1, "filename": "dnsdb-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1ab47e55ec759600a1cd86bf697bf4eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 23617, "upload_time": "2019-03-20T13:57:13", "url": "https://files.pythonhosted.org/packages/ba/70/2d8a80ae446cea0bb756045c813e3d5cddd2030154aea60c7535cdbcfee1/dnsdb-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6934246f1387fa0246e57f37f89fadf6", "sha256": "16dc74c0f71f0a500ba0bc1cde7490e6bfdafa174d1cf56a9dc7613a35b11cd7" }, "downloads": -1, "filename": "dnsdb-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6934246f1387fa0246e57f37f89fadf6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 8033, "upload_time": "2019-03-20T13:57:14", "url": "https://files.pythonhosted.org/packages/41/94/308c79c07040781c88e517c3c40ed6bdfacbdb2ed4127283c675dd282e2a/dnsdb-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "7c3437fa102abb0f2b2961981f0a56fc", "sha256": "7af892e6e4107f401ae6d9c9ecda21f2b520964447f23f15ed9f079f55f21595" }, "downloads": -1, "filename": "dnsdb-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7c3437fa102abb0f2b2961981f0a56fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 23675, "upload_time": "2019-03-20T14:10:03", "url": "https://files.pythonhosted.org/packages/18/8d/ab3d9d0bd10d12bc06d4a89007310f80bbb45a63115e40ecf56367324bed/dnsdb-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fa9798a92bfa8faaab5a3c59ae3216a", "sha256": "ac9b038bfb016e46b64125257aaa9b99d172ca6e6ef955eb727c47b00912aab8" }, "downloads": -1, "filename": "dnsdb-0.2.3.tar.gz", "has_sig": false, "md5_digest": "9fa9798a92bfa8faaab5a3c59ae3216a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 8063, "upload_time": "2019-03-20T14:10:05", "url": "https://files.pythonhosted.org/packages/1c/f1/0a855dbd6c6786638e259a4e6d43a6fcb6db4a745d4bcb5216ca3e6fb4c8/dnsdb-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "9121b8d8eaf60a1d3d3d75d7ba4350b0", "sha256": "7e9a82ca84fa1657d5dd642583e9a9d17d7fe924f309a029c1473dc427eb9396" }, "downloads": -1, "filename": "dnsdb-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9121b8d8eaf60a1d3d3d75d7ba4350b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 23676, "upload_time": "2019-03-27T14:25:13", "url": "https://files.pythonhosted.org/packages/de/c7/b7e5e3c54f125f47fc20ae576661130f241fbd854282f1df2064e3e8dc2b/dnsdb-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29c86c7acc3669fb62b1146e8805cc09", "sha256": "69c51e6b09c92ad2af658aa7bea42226fce0790bbf44622e0762f0f932ea8e1b" }, "downloads": -1, "filename": "dnsdb-0.2.4.tar.gz", "has_sig": false, "md5_digest": "29c86c7acc3669fb62b1146e8805cc09", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 8085, "upload_time": "2019-03-27T14:25:14", "url": "https://files.pythonhosted.org/packages/a5/d0/c9b6424648d0d9c3117c939e0c572e17b3ad455bd8d1f747701136cb90a9/dnsdb-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "17201a52326be1788ca40e278286b33d", "sha256": "0c2000f91c378a04b85ec8c57a5b9752e933321f1e24a6d61c053e0662f6508d" }, "downloads": -1, "filename": "dnsdb-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "17201a52326be1788ca40e278286b33d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13138, "upload_time": "2019-05-03T20:00:14", "url": "https://files.pythonhosted.org/packages/73/28/643c7559d961b945e488d44bd85c24cf63c3fd3a6cc83beb8508e394a1f6/dnsdb-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b19a59d4b7d767aed4a135d5e6207e7f", "sha256": "204331c7e22d792e529f9d2a6ba7b299924918bb677229288c4b09d71ea95f51" }, "downloads": -1, "filename": "dnsdb-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b19a59d4b7d767aed4a135d5e6207e7f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 13131, "upload_time": "2019-05-03T20:00:15", "url": "https://files.pythonhosted.org/packages/1c/5f/1bcfd7f59568e9bc3660245c62f7632a4a6d483b54eee9250cc9609b1855/dnsdb-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "17201a52326be1788ca40e278286b33d", "sha256": "0c2000f91c378a04b85ec8c57a5b9752e933321f1e24a6d61c053e0662f6508d" }, "downloads": -1, "filename": "dnsdb-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "17201a52326be1788ca40e278286b33d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 13138, "upload_time": "2019-05-03T20:00:14", "url": "https://files.pythonhosted.org/packages/73/28/643c7559d961b945e488d44bd85c24cf63c3fd3a6cc83beb8508e394a1f6/dnsdb-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b19a59d4b7d767aed4a135d5e6207e7f", "sha256": "204331c7e22d792e529f9d2a6ba7b299924918bb677229288c4b09d71ea95f51" }, "downloads": -1, "filename": "dnsdb-0.2.5.tar.gz", "has_sig": false, "md5_digest": "b19a59d4b7d767aed4a135d5e6207e7f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 13131, "upload_time": "2019-05-03T20:00:15", "url": "https://files.pythonhosted.org/packages/1c/5f/1bcfd7f59568e9bc3660245c62f7632a4a6d483b54eee9250cc9609b1855/dnsdb-0.2.5.tar.gz" } ] }