{ "info": { "author": "NewFuture", "author_email": "python@newfuture.cc", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "# [DDNS](https://github.com/NewFuture/DDNS)\n\n> \u81ea\u52a8\u66f4\u65b0 DNS \u89e3\u6790 \u5230\u672c\u673a IP \u5730\u5740,\u652f\u6301 ipv4 \u548c ipv6 \u4ee5 \u672c\u5730(\u5185\u7f51)IP \u548c \u516c\u7f51 IP\u3002\n> \u4ee3\u7406\u6a21\u5f0f,\u652f\u6301\u81ea\u52a8\u521b\u5efa\u57df\u540d\u8bb0\u5f55\u3002\n\n[![PyPI](https://img.shields.io/pypi/v/ddns.svg?label=DDNS&style=social)](https://pypi.org/project/ddns/)\n[![Build Status](https://travis-ci.com/NewFuture/DDNS.svg?branch=master)](https://travis-ci.com/NewFuture/DDNS)\n[![Build Status](https://dev.azure.com/NewFuture-CI/ddns-ci/_apis/build/status/NewFuture.DDNS?branchName=master)](https://dev.azure.com/NewFuture-CI/ddns-ci/_build/latest?definitionId=2&branchName=master)\n[![latest deploy](https://vsrm.dev.azure.com/NewFuture-CI/_apis/public/Release/badge/2ab09aad-c4b4-4c57-ab1b-2fb92c485664/1/1)](https://github.com/NewFuture/DDNS/releases/latest)\n\n
\n\nBuild Details\n\n\n- Linux Python (2 \u548c 3): [![Travis build](https://img.shields.io/travis/com/NewFuture/DDNS/master.svg?label=python2%2Cpython3&logo=ubuntu&logoColor=white)](https://travis-ci.com/NewFuture/DDNS)\n- Windows Python3.7: [![Build Status](https://dev.azure.com/NewFuture-CI/ddns-ci/_apis/build/status/NewFuture.DDNS?branchName=master&jobName=Windows&configuration=Python37)](https://dev.azure.com/NewFuture-CI/ddns-ci/_build/latest?definitionId=2&branchName=master)\n- Windows Python2.7: [![Build Status](https://dev.azure.com/NewFuture-CI/ddns-ci/_apis/build/status/NewFuture.DDNS?branchName=master&jobName=Windows&configuration=Python27)](https://dev.azure.com/NewFuture-CI/ddns-ci/_build/latest?definitionId=2&branchName=master)\n- Mac OSX Python3.7: [![Build Status](https://dev.azure.com/NewFuture-CI/ddns-ci/_apis/build/status/NewFuture.DDNS?branchName=master&jobName=MacOS&configuration=Python37)](https://dev.azure.com/NewFuture-CI/ddns-ci/_build/latest?definitionId=2&branchName=master)\n- Mac OSX Python2.7: [![Build Status](https://dev.azure.com/NewFuture-CI/ddns-ci/_apis/build/status/NewFuture.DDNS?branchName=master&jobName=MacOS&configuration=Python27)](https://dev.azure.com/NewFuture-CI/ddns-ci/_build/latest?definitionId=2&branchName=master)\n\n
\n\n---\n\n## Features\n\n- \u517c\u5bb9\u548c\u8de8\u5e73\u53f0:\n - [x] \u53ef\u6267\u884c\u6587\u4ef6(\u65e0\u9700 python \u73af\u5883)\n - [x] \u591a\u7cfb\u7edf\u517c\u5bb9 ![cross platform](https://img.shields.io/badge/platform-windows_%7C%20linux_%7C%20osx-success.svg?style=social)\n - [x] python2 \u548c python3 \u652f\u6301 ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ddns.svg?style=social)\n - [x] PIP \u5b89\u88c5 ![PyPI - Wheel](https://img.shields.io/pypi/wheel/ddns.svg?style=social)\n- \u57df\u540d\u652f\u6301:\n - [x] \u591a\u4e2a\u57df\u540d\u652f\u6301\n - [x] \u591a\u7ea7\u57df\u540d\u89e3\u6790\n - [x] \u81ea\u52a8\u521b\u5efa\u65b0\u8bb0\u5f55\n- IP \u7c7b\u578b:\n - [x] \u5185\u7f51 IPv4 / IPv6\n - [x] \u516c\u7f51 IPv4 / IPv6 (\u652f\u6301\u81ea\u5b9a\u4e49 API)\n - [x] \u81ea\u5b9a\u4e49\u547d\u4ee4(shell)\n - [x] \u6b63\u5219\u9009\u53d6\u652f\u6301(@rufengsuixing)\n- \u7f51\u7edc\u4ee3\u7406:\n - [x] http \u4ee3\u7406\u652f\u6301\n - [x] \u591a\u4ee3\u7406\u81ea\u52a8\u5207\u6362\n- \u670d\u52a1\u5546\u652f\u6301:\n - [x] [DNSPOD](https://www.dnspod.cn/)\n - [x] [\u963f\u91cc DNS](http://www.alidns.com/)\n - [x] [DNS.COM](https://www.dns.com/)(@loftor-git)\n - [x] [DNSPOD \u56fd\u9645\u7248](https://www.dnspod.com/)\n - [x] [CloudFlare](https://www.cloudflare.com/)(@tongyifan)\n- \u5176\u4ed6:\n - [x] \u53ef\u8bbe\u7f6e\u5b9a\u65f6\u4efb\u52a1\n - [x] \u672c\u5730\u6587\u4ef6\u7f13\u5b58(\u51cf\u5c11 API \u8bf7\u6c42)\n\n## \u4f7f\u7528\n\n### \u2460 \u5b89\u88c5\n\n\u6839\u636e\u9700\u8981\u9009\u62e9\u4e00\u79cd\u65b9\u5f0f: `\u4e8c\u8fdb\u5236`\u7248,`pip`\u7248,\u6216\u8005`\u6e90\u7801`\u8fd0\u884c\n\n- #### pip \u5b89\u88c5(\u9700\u8981 pip \u6216 easy_install)\n 1. \u5b89\u88c5 ddns: `pip install ddns` \u6216 `easy_install ddns`\n 2. \u8fd0\u884c: `ddns`\n- #### \u4e8c\u8fdb\u5236\u7248(\u5355\u6587\u4ef6,\u65e0\u9700 python)\n - Windows [ddns.exe](https://github.com/NewFuture/DDNS/releases/latest)\n - Linux (\u4ec5 Ubuntu \u6d4b\u8bd5) [ddns](https://github.com/NewFuture/DDNS/releases/latest)\n - Mac OSX [ddns-oxs](https://github.com/NewFuture/DDNS/releases/latest)\n- #### \u6e90\u7801\u8fd0\u884c(\u65e0\u4efb\u4f55\u4f9d\u8d56, \u9700 python \u73af\u5883)\n 1. clone \u6216\u8005[\u4e0b\u8f7d\u6b64\u4ed3\u5e93](https://github.com/NewFuture/DDNS/archive/master.zip)\u5e76\u89e3\u538b\n 2. \u8fd0\u884c./run.py (widnows \u53cc\u51fb`run.bat`\u6216\u8005\u8fd0\u884c`python run.py`)\n\n### \u2461 \u5feb\u901f\u914d\u7f6e\n\n1. \u7533\u8bf7 api `token`,\u586b\u5199\u5230\u5bf9\u5e94\u7684`id`\u548c`token`\u5b57\u6bb5:\n\n - [DNSPOD(\u56fd\u5185\u7248)\u521b\u5efa token](https://support.dnspod.cn/Kb/showarticle/tsid/227/)\n - [\u963f\u91cc\u4e91 accesskey](https://help.aliyun.com/knowledge_detail/38738.html)\n - [DNS.COM API Key/Secret](https://www.dns.com/member/apiSet)\n - [DNSPOD(\u56fd\u9645\u7248)](https://www.dnspod.com/docs/info.html#get-the-user-token)\n - [CloudFlare API Key](https://support.cloudflare.com/hc/en-us/articles/200167836-Where-do-I-find-my-Cloudflare-API-key-)\n\n2. \u4fee\u6539\u914d\u7f6e\u6587\u4ef6,`ipv4`\u548c`ipv6`\u5b57\u6bb5\uff0c\u4e3a\u5f85\u66f4\u65b0\u7684\u57df\u540d,\u8be6\u7ec6\u53c2\u7167\u914d\u7f6e\u8bf4\u660e\n\n## \u8be6\u7ec6\u914d\u7f6e\n\n
\n\nconfig.json \u914d\u7f6e\u6587\u4ef6\n\n\n- \u9996\u6b21\u8fd0\u884c\u4f1a\u81ea\u52a8\u751f\u6210\u4e00\u4e2a\u6a21\u677f\u914d\u7f6e\u6587\u4ef6\n- \u53ef\u4ee5\u4f7f\u7528 `-c`\u4f7f\u7528\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6 (\u9ed8\u8ba4\u8bfb\u53d6\u5f53\u524d\u76ee\u5f55\u7684 config.json)\n- \u63a8\u8350\u4f7f\u7528 vscode \u7b49\u652f\u6301 JsonSchema \u7684\u7f16\u8f91\u5668\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6\n\n```bash\nddns -c path/to/config.json\n# \u6216\u8005\u6e90\u7801\u8fd0\u884c\npython run.py -c /path/to/config.json\n```\n\n#### \u914d\u7f6e\u53c2\u6570\u8868\n\n| key | type | required | default | description | tips |\n| :----: | :---------: | :------: | :---------: | :--------------: | ----------------------------------------------------------------- |\n| id | string | \u221a | \u65e0 | api \u8bbf\u95ee ID | cloudflare \u4e3a\u90ae\u7bb1 |\n| token | string | \u221a | \u65e0 | api \u6388\u6743 token | \u4e5f\u53eb secret key, **\u53cd\u9988\u7c98\u8d34\u65f6\u5220\u9664** |\n| dns | string | No | `\"dnspod\"` | dns \u670d\u52a1\u5546 | \u963f\u91cc`alidns`,
dns.com \u4e3a`dnscom`,
DNSPOD \u56fd\u9645\u7248`dnspod_com` |\n| ipv4 | array | No | `[]` | ipv4 \u57df\u540d\u5217\u8868 | \u4e3a`[]`\u65f6,\u4e0d\u4f1a\u83b7\u53d6\u548c\u66f4\u65b0 IPv4 \u5730\u5740 |\n| ipv6 | array | No | `[]` | ipv6 \u57df\u540d\u5217\u8868 | \u4e3a`[]`\u65f6,\u4e0d\u4f1a\u83b7\u53d6\u548c\u66f4\u65b0 IPv6 \u5730\u5740 |\n| index4 | string\\|int | No | `\"default\"` | ipv4 \u83b7\u53d6\u65b9\u5f0f | \u53ef\u8bbe\u7f6e`\u7f51\u5361`,`\u5185\u7f51`,`\u516c\u7f51`,`\u6b63\u5219`\u7b49\u65b9\u5f0f |\n| index6 | string\\|int | No | `\"default\"` | ipv6 \u83b7\u53d6\u65b9\u5f0f | \u53ef\u8bbe\u7f6e`\u7f51\u5361`,`\u5185\u7f51`,`\u516c\u7f51`,`\u6b63\u5219`\u7b49\u65b9\u5f0f |\n| proxy | string | No | \u65e0 | http \u4ee3\u7406`;`\u5206\u5272 | \u591a\u4ee3\u7406\u9010\u4e2a\u5c1d\u8bd5\u76f4\u5230\u6210\u529f,`DIRECT`\u4e3a\u76f4\u8fde |\n| debug | bool | No | `false` | \u662f\u5426\u5f00\u542f\u8c03\u8bd5 | \u8fd0\u884c\u5f02\u5e38\u65f6,\u6253\u5f00\u8c03\u8bd5\u8f93\u51fa,\u65b9\u4fbf\u8bca\u65ad\u9519\u8bef |\n| cache | bool | No | `true` | \u662f\u5426\u7f13\u5b58\u8bb0\u5f55 | \u6b63\u5e38\u60c5\u51b5\u6253\u5f00\u907f\u514d\u9891\u7e41\u66f4\u65b0 |\n\n#### index4 \u548c index6 \u53c2\u6570\u8bf4\u660e\n\n- \u6570\u5b57(`0`,`1`,`2`,`3`\u7b49): \u7b2c i \u4e2a\u7f51\u5361 ip\n- \u5b57\u7b26\u4e32`\"default\"`(\u6216\u8005\u65e0\u6b64\u9879): \u7cfb\u7edf\u8bbf\u95ee\u5916\u7f51\u9ed8\u8ba4 IP\n- \u5b57\u7b26\u4e32`\"public\"`: \u4f7f\u7528\u516c\u7f51 ip(\u4f7f\u7528\u516c\u7f51 API \u67e5\u8be2,url \u7684\u7b80\u5316\u6a21\u5f0f)\n- \u5b57\u7b26\u4e32`\"url:xxx\"`: \u6253\u5f00 URL `xxx`(\u5982:`\"url:http://ip.sb\"`),\u4ece\u8fd4\u56de\u7684\u6570\u636e\u63d0\u53d6 IP \u5730\u5740\n- \u5b57\u7b26\u4e32`\"regex:xxx\"` \u6b63\u5219\u8868\u8fbe(\u5982`\"regex:192.*\"`): \u63d0\u53d6`ifconfig`/`ipconfig`\u4e2d\u4e0e\u4e4b\u5339\u914d\u7684\u9996\u4e2a IP \u5730\u5740,**\u6ce8\u610f json \u8f6c\u4e49**(`\\`\u8981\u5199\u6210`\\\\`)\n - `\"192.*\"`\u8868\u793a 192 \u5f00\u5934\u7684\u6240\u6709 ip\n - \u5982\u679c\u60f3\u5339\u914d`10.00.xxxx`\u5e94\u8be5\u5199\u6210`\"regex:10\\\\.00\\\\..\\*\"`(`\"\\\\\"`json \u8f6c\u4e49\u6210`\\`)\n- \u5b57\u7b26\u4e32`\"cmd:xxxx\"`: \u6267\u884c\u547d\u4ee4`xxxx`\u7684 stdout \u8f93\u51fa\u7ed3\u679c\u4f5c\u4e3a\u76ee\u6807 IP\n- \u5b57\u7b26\u4e32`\"shell:xxx\"`: \u4f7f\u7528\u7cfb\u7edf shell \u8fd0\u884c`xxx`,\u5e76\u628a\u7ed3\u679c stdout \u4f5c\u4e3a\u76ee\u6807 IP\n- `false`: \u5f3a\u5236\u7981\u6b62\u66f4\u65b0 ipv4 \u6216 ipv6 \u7684 DNS \u89e3\u6790\n\n#### \u914d\u7f6e\u793a\u4f8b\n\n```json\n{\n \"$schema\": \"https://ddns.newfuture.cc/schema/v2.json\",\n \"id\": \"12345\",\n \"token\": \"mytokenkey\",\n \"dns\": \"dnspod \u6216 dnspod_com \u6216 alidns \u6216 dnscom \u6216 cloudflare\",\n \"ipv4\": [\"ddns.newfuture.cc\", \"ipv4.ddns.newfuture.cc\"],\n \"ipv6\": [\"ddns.newfuture.cc\", \"ipv6.ddns.newfuture.cc\"],\n \"index4\": 0,\n \"index6\": \"public\",\n \"proxy\": \"127.0.0.1:1080;DIRECT\",\n \"debug\": false\n}\n```\n\n
\n\n## \u5b9a\u65f6\u4efb\u52a1\n\n
\n\n\u53ef\u4ee5\u901a\u8fc7\u811a\u672c\u8bbe\u7f6e\u5b9a\u65f6\u4efb\u52a1(\u9ed8\u8ba4\u6bcf5\u5206\u949f\u68c0\u67e5\u4e00\u6b21ip,\u81ea\u52a8\u66f4\u65b0)\n\n\n#### windows\n\n- [\u63a8\u8350]\u4ee5\u7cfb\u7edf\u8eab\u4efd\u8fd0\u884c,\u53f3\u952e\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\"`task.bat`(\u6216\u8005\u5728\u7ba1\u7406\u5458\u547d\u4ee4\u884c\u4e2d\u8fd0\u884c)\n- \u4ee5\u5f53\u524d\u7528\u6237\u8eab\u4efd\u8fd0\u884c\u5b9a\u65f6\u4efb\u52a1,\u53cc\u51fb\u6216\u8005\u8fd0\u884c`task.bat` (\u6267\u884c\u65f6\u4f1a\u95ea\u9ed1\u6846)\n\n#### linux\n\n\u8fd0\u884c `sudo ./task.sh`\n\n
\n\n## FAQ\n\n
\n\n Windows Server [SSL: CERTIFICATE_VERIFY_FAILED]\n\n\n> Windows Server \u9ed8\u8ba4\u5b89\u5168\u7b56\u7565\u4f1a\u7981\u6b62\u4efb\u4f55\u672a\u6dfb\u52a0\u7684\u4fe1\u4efb ssl \u8bc1\u4e66,\u53ef\u624b\u52a8\u6dfb\u52a0\u4e00\u4e0b\u5bf9\u5e94\u7684\u8bc1\u4e66 [#56](https://github.com/NewFuture/DDNS/issues/56#issuecomment-487371078)\n\n\u4f7f\u7528\u7cfb\u7edf\u81ea\u5e26\u7684 IE \u6d4f\u89c8\u5668\u8bbf\u95ee\u4e00\u6b21\u5bf9\u5e94\u7684 API \u5373\u53ef\n\n- alidns \u6253\u5f00: \n- cloudflare \u6253\u5f00: \n- dns.com \u6253\u5f00: \n- dnspod.cn \u6253\u5f00: \n- dnspod \u56fd\u9645\u7248: \n\n
\n\n
\n\n \u95ee\u9898\u6392\u67e5\u53cd\u9988\n\n\n1. \u5148\u786e\u8ba4\u6392\u67e5\u662f\u5426\u662f\u7cfb\u7edf/\u7f51\u7edc\u73af\u5883\u95ee\u9898\n2. \u5728[issues](https://github.com/NewFuture/DDNS/issues)\u4e2d\u641c\u7d22\u662f\u5426\u6709\u7c7b\u4f3c\u95ee\u9898\n3. \u524d\u4e24\u8005\u5747\u65e0\u6cd5\u89e3\u51b3\u6216\u8005\u786e\u5b9a\u662f bug,[\u5728\u6b64\u65b0\u5efa issue](https://github.com/NewFuture/DDNS/issues/new)\n - [ ] \u5f00\u542f debug \u914d\u7f6e\n - [ ] \u9644\u4e0a\u8fd9\u4e9b\u5185\u5bb9 **\u8fd0\u884c\u7248\u672c\u548c\u65b9\u5f0f**,**\u7cfb\u7edf\u73af\u5883**, **\u51fa\u9519\u65e5\u5fd7**,**\u53bb\u6389 id/token**\u7684\u914d\u7f6e\u6587\u4ef6\n - [ ] \u6e90\u7801\u8fd0\u884c\u6ce8\u660e\u4f7f\u7528\u7684 python \u73af\u5883\n\n
\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://ddns.newfuture.cc", "keywords": "ddns ipv6 ipv4 dns dnspod alidns cloudflare", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ddns", "package_url": "https://pypi.org/project/ddns/", "platform": "any", "project_url": "https://pypi.org/project/ddns/", "project_urls": { "Bug Reports": "https://github.com/NewFuture/DDNS/issues", "Homepage": "https://ddns.newfuture.cc", "Source": "https://github.com/NewFuture/DDNS" }, "release_url": "https://pypi.org/project/ddns/2.7.2/", "requires_dist": null, "requires_python": ">=2.5, <4", "summary": "automatically update DNS records to dynamic local IP [\u81ea\u52a8\u66f4\u65b0DNS\u8bb0\u5f55\u6307\u5411\u672c\u5730IP]", "version": "2.7.2" }, "last_serial": 5899706, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "380298056beb585f74cfb8a8c46e4177", "sha256": "cae6054138e5de50bc8c7b0ab05ddfacdd9a081240d9ed35f41dc444ce4b5310" }, "downloads": -1, "filename": "ddns-0.0.1.tar.gz", "has_sig": false, "md5_digest": "380298056beb585f74cfb8a8c46e4177", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 15948, "upload_time": "2019-05-01T14:27:19", "url": "https://files.pythonhosted.org/packages/12/8e/4ec0a919af20b1d901830558203d8f9f2b90827bf8614bbbb24c65760903/ddns-0.0.1.tar.gz" } ], "2.5.13": [ { "comment_text": "", "digests": { "md5": "d48d4758c6baa5a31ea5aa1ad368132f", "sha256": "3fc68739022e2ce2f2e3ef88b5881c408472a16bcbb183353c08f5985afbd9cb" }, "downloads": -1, "filename": "ddns-2.5.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d48d4758c6baa5a31ea5aa1ad368132f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 20967, "upload_time": "2019-05-01T18:35:43", "url": "https://files.pythonhosted.org/packages/ab/0f/74cfef5f59d5ac1b4a8071cfaf8d59ff5722f4eefbe06d059b17a1377bbe/ddns-2.5.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f4fbeab26ba4013b1091d8dc6a1b40c", "sha256": "a86e451f0a0dfccd484f57410f769c2c5284886e8046b8d1a902a89eff4a67c3" }, "downloads": -1, "filename": "ddns-2.5.13.tar.gz", "has_sig": false, "md5_digest": "6f4fbeab26ba4013b1091d8dc6a1b40c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 16444, "upload_time": "2019-05-01T18:35:45", "url": "https://files.pythonhosted.org/packages/e1/15/ab89d3cd7f391d1fd681dfb8a3a2696b37a1225841ad9505f46c296ebdf4/ddns-2.5.13.tar.gz" } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "dbf0ad1d889c2f09b52d971824311fce", "sha256": "cc84810db903e569bb3a19e1fe344a105d23f18a46eb9a338a0cddf975c4e6fc" }, "downloads": -1, "filename": "ddns-2.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dbf0ad1d889c2f09b52d971824311fce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 21211, "upload_time": "2019-05-01T20:51:25", "url": "https://files.pythonhosted.org/packages/df/54/058e63d7a6cc2777296db1c46e010815cf640db7b3c5a0a914d54b8572c0/ddns-2.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "049e8867b2087e37b96355c2f1c38af3", "sha256": "63cfc934ef11871423bada20ee4f53f7723fec8de17f27b65d3892a31426ea1e" }, "downloads": -1, "filename": "ddns-2.6.0.tar.gz", "has_sig": false, "md5_digest": "049e8867b2087e37b96355c2f1c38af3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 16730, "upload_time": "2019-05-01T20:51:26", "url": "https://files.pythonhosted.org/packages/a6/ed/d6e0432bde92a85f5b7774062987dfe01eb380a9c4f8bf2e081da842a6b1/ddns-2.6.0.tar.gz" } ], "2.6.1": [ { "comment_text": "", "digests": { "md5": "c8a281b703697b863956439d6ae2f446", "sha256": "c6ca7ca4eebcf8e2643944105ce0118fa4b28604fc1dd2181e5cfd07c56a9659" }, "downloads": -1, "filename": "ddns-2.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c8a281b703697b863956439d6ae2f446", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 21324, "upload_time": "2019-05-02T05:16:42", "url": "https://files.pythonhosted.org/packages/67/96/876220bd008a5370dec4667497a01bc6c3296734c25eeff02df377bb6ca6/ddns-2.6.1-py2.py3-none-any.whl" } ], "2.6.2": [ { "comment_text": "", "digests": { "md5": "55add2cc7a67f071cb109f28cc64c9db", "sha256": "0f811d44acc3e94a9a130aa129988a02f8b8dacfdcb852fe0c6ab72f1d8415c9" }, "downloads": -1, "filename": "ddns-2.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55add2cc7a67f071cb109f28cc64c9db", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 21306, "upload_time": "2019-05-02T05:58:53", "url": "https://files.pythonhosted.org/packages/f1/43/291c3970b42211efbad7439c4341a3e749a5ada4ae8cc274dcb8301c7a9e/ddns-2.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "307890f8dff9069e17b3745024468ea3", "sha256": "a5afccb1a086069941b31228e95541b30b95573f77e4fa81ea4702cb0b7efbbb" }, "downloads": -1, "filename": "ddns-2.6.2.tar.gz", "has_sig": false, "md5_digest": "307890f8dff9069e17b3745024468ea3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 16906, "upload_time": "2019-05-02T05:58:54", "url": "https://files.pythonhosted.org/packages/80/c3/227408c51ea04485fe9e9ad9e2aa2b31f1b8250a96354bf9fdd4fdbb7a3f/ddns-2.6.2.tar.gz" } ], "2.6.3": [ { "comment_text": "", "digests": { "md5": "99f5217152e084bce75448b7ab6aae97", "sha256": "9746e4e97ce2fb983225d9dc89e3cc127fa1ca46f8d40de17ccf8c994069f0c5" }, "downloads": -1, "filename": "ddns-2.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99f5217152e084bce75448b7ab6aae97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 21299, "upload_time": "2019-05-02T06:23:37", "url": "https://files.pythonhosted.org/packages/ae/8e/54623bc2de898352e2ef23f7799d0f192ada6597af51d5b748f94c97c24e/ddns-2.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ceea948cc48c0520a5aa209b6a7aaa3", "sha256": "e9f09c12c4836d166a582f11c69c78c42540550120897625d4912103ca411719" }, "downloads": -1, "filename": "ddns-2.6.3.tar.gz", "has_sig": false, "md5_digest": "3ceea948cc48c0520a5aa209b6a7aaa3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 16906, "upload_time": "2019-05-02T06:23:39", "url": "https://files.pythonhosted.org/packages/ff/5c/ec112fd964ad8b60f5e9aa84db0dd375c8069454893fcdd623bd34eac49d/ddns-2.6.3.tar.gz" } ], "2.6.4": [ { "comment_text": "", "digests": { "md5": "21f41cb1193b3310f8cdaed97b03a09f", "sha256": "c2dfc31fe28b5ec5d2f5dca70eb3a5ccc9235f7a6b3a9ce8a1aad894e501583b" }, "downloads": -1, "filename": "ddns-2.6.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "21f41cb1193b3310f8cdaed97b03a09f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 21666, "upload_time": "2019-05-04T08:49:37", "url": "https://files.pythonhosted.org/packages/df/d7/f0d4d256fa32d9c246678f88d0fdb6d33c2e6adfcfdd7cd4dedf1ab5a92d/ddns-2.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f95cad2ca466d707d04a947efe5a9f28", "sha256": "dbb151a258abc65bd8ffd8201024a022255243659654df764c7776dd76f79e25" }, "downloads": -1, "filename": "ddns-2.6.4.tar.gz", "has_sig": false, "md5_digest": "f95cad2ca466d707d04a947efe5a9f28", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 17267, "upload_time": "2019-05-04T08:49:38", "url": "https://files.pythonhosted.org/packages/d5/bf/55701f9a07afeb4f3373945a42979613edef0a8892d23010e988a444122c/ddns-2.6.4.tar.gz" } ], "2.7.0": [ { "comment_text": "", "digests": { "md5": "149e3a70d6ced896039ec222addfc7ac", "sha256": "43979bc5941598d38a9dab540893a7c33f99aed57ce8123f0435859f8f2e2482" }, "downloads": -1, "filename": "ddns-2.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "149e3a70d6ced896039ec222addfc7ac", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 21846, "upload_time": "2019-08-18T14:37:33", "url": "https://files.pythonhosted.org/packages/d5/20/ac9d454b17e9ccc2064901e1a153a7a173424b4ba7fbf5a84ac678695acf/ddns-2.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d54c95689add56f2c7b6feb901489676", "sha256": "e916bf300b323817ba87b50c4ccd64135740b133bdc55a22a6d3ac3c4bf68522" }, "downloads": -1, "filename": "ddns-2.7.0.tar.gz", "has_sig": false, "md5_digest": "d54c95689add56f2c7b6feb901489676", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 17434, "upload_time": "2019-08-18T14:37:35", "url": "https://files.pythonhosted.org/packages/70/7c/f184390ed1351cab65dbb58f4c02533120ad35b2643c379a26260ab2b969/ddns-2.7.0.tar.gz" } ], "2.7.1": [ { "comment_text": "", "digests": { "md5": "f8936114f63233c959007b13333cb6e1", "sha256": "f3a05366e0a90e22e43bcb8b2028a917859baaca43f195a7e845b6ab38ce4418" }, "downloads": -1, "filename": "ddns-2.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8936114f63233c959007b13333cb6e1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 20578, "upload_time": "2019-09-17T05:46:36", "url": "https://files.pythonhosted.org/packages/bd/42/5f74abdb2e857064e77b5a30480d5b2612b083906c1174b85684c39fd278/ddns-2.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3158446f1d79f67aab83e22e16e1605a", "sha256": "4ff5e9d313c98fa51fbbbf10497cb71b9a2bbf81cb11bbad5a96c2dfd640565d" }, "downloads": -1, "filename": "ddns-2.7.1.tar.gz", "has_sig": false, "md5_digest": "3158446f1d79f67aab83e22e16e1605a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 17780, "upload_time": "2019-09-17T05:46:38", "url": "https://files.pythonhosted.org/packages/4c/3c/8ad4441a4e28f6b7c2d25d3be9be0f81d3a736a78d3a841cfd9e3bf4b951/ddns-2.7.1.tar.gz" } ], "2.7.2": [ { "comment_text": "", "digests": { "md5": "cf84987aedcb67898890b5654ef287ba", "sha256": "d498726f83ad514d6ba0fa1ce0b7b8ed858b44f7a8b3bdb3cebb20b48618ea11" }, "downloads": -1, "filename": "ddns-2.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cf84987aedcb67898890b5654ef287ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 20586, "upload_time": "2019-09-28T13:38:23", "url": "https://files.pythonhosted.org/packages/dd/e4/3d5359c9dc2d7a9dc329df83837be96a087a63ddff613ce2a9b21dab203f/ddns-2.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee72c7a75f3f4a8c3a4a8bb1633dc3b0", "sha256": "1cff3af1d2974222ac1792882ceb2c54479ef47bea3f42a9567e1ff3288ac399" }, "downloads": -1, "filename": "ddns-2.7.2.tar.gz", "has_sig": false, "md5_digest": "ee72c7a75f3f4a8c3a4a8bb1633dc3b0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 17788, "upload_time": "2019-09-28T13:38:25", "url": "https://files.pythonhosted.org/packages/f5/7b/896a5e169a934aae85c91b4351b65683fedc13db74163fd88148402afcba/ddns-2.7.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cf84987aedcb67898890b5654ef287ba", "sha256": "d498726f83ad514d6ba0fa1ce0b7b8ed858b44f7a8b3bdb3cebb20b48618ea11" }, "downloads": -1, "filename": "ddns-2.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cf84987aedcb67898890b5654ef287ba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.5, <4", "size": 20586, "upload_time": "2019-09-28T13:38:23", "url": "https://files.pythonhosted.org/packages/dd/e4/3d5359c9dc2d7a9dc329df83837be96a087a63ddff613ce2a9b21dab203f/ddns-2.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee72c7a75f3f4a8c3a4a8bb1633dc3b0", "sha256": "1cff3af1d2974222ac1792882ceb2c54479ef47bea3f42a9567e1ff3288ac399" }, "downloads": -1, "filename": "ddns-2.7.2.tar.gz", "has_sig": false, "md5_digest": "ee72c7a75f3f4a8c3a4a8bb1633dc3b0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.5, <4", "size": 17788, "upload_time": "2019-09-28T13:38:25", "url": "https://files.pythonhosted.org/packages/f5/7b/896a5e169a934aae85c91b4351b65683fedc13db74163fd88148402afcba/ddns-2.7.2.tar.gz" } ] }