Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pv8/noipy
Command line tool to update DDNS: No-IP, DuckDNS and DynDNS hosts IP
https://github.com/pv8/noipy
cli command-line ddns ddns-client dyndns noip python python3
Last synced: 3 months ago
JSON representation
Command line tool to update DDNS: No-IP, DuckDNS and DynDNS hosts IP
- Host: GitHub
- URL: https://github.com/pv8/noipy
- Owner: pv8
- License: apache-2.0
- Created: 2013-03-22T17:30:34.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2023-07-10T08:44:48.000Z (over 1 year ago)
- Last Synced: 2024-06-03T18:17:35.079Z (5 months ago)
- Topics: cli, command-line, ddns, ddns-client, dyndns, noip, python, python3
- Language: Python
- Homepage:
- Size: 279 KB
- Stars: 72
- Watchers: 6
- Forks: 14
- Open Issues: 15
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- starred-awesome - noipy - Command line tool to update DDNS: No-IP, DuckDNS and DynDNS hosts IP (Python)
README
noipy: DDNS update tool
=======================.. image:: https://img.shields.io/pypi/v/noipy.svg
:target: https://pypi.python.org/pypi/noipy/.. image:: https://img.shields.io/pypi/pyversions/noipy.svg
:target: https://pypi.python.org/pypi/noipy.. image:: https://snapcraft.io/noipy/badge.svg
:target: https://snapcraft.io/noipy
:alt: Snap Status.. image:: https://snapcraft.io/noipy/trending.svg?name=0
:target: https://snapcraft.io/noipy
:alt: Snap Trending.. image:: https://api.travis-ci.org/pv8/noipy.svg?branch=master
:target: https://travis-ci.org/pv8/noipy.. image:: https://codecov.io/gh/pv8/noipy/branch/master/graph/badge.svg
:target: https://codecov.io/gh/pv8/noipy.. image:: https://landscape.io/github/pv8/noipy/master/landscape.svg
:target: https://landscape.io/github/pv8/noipy/master
:alt: Code Health.. image:: https://api.codeclimate.com/v1/badges/1f700be0ea796c8a49e9/maintainability
:target: https://codeclimate.com/github/pv8/noipy/maintainability
:alt: Maintainability.. image:: https://zenodo.org/badge/doi/10.5281/zenodo.29017.svg?style=flat-square
:target: http://dx.doi.org/10.5281/zenodo.29017Command line tool to update DDNS hosts IP address via update API. Initially
the tool was designed to update IP address only on No-IP DDNS provider. But
now **noipy** has support for the following DDNS providers:- `No-IP `_
- `DuckDNS `_
- `DynDNS `_Installation
------------Install with `pip `_:
.. code-block:: bash
$ pip install noipy
Or with `Snappy `_ on `supported distros `_:
.. code-block:: bash
$ sudo snap install noipy
**Note**: **noipy** will also install the `Requests HTTP library `_.
Usage
-----Basic usage of **noipy** command line tool:
.. code-block:: bash
$ noipy -u -p -n
--provider {generic|noip|dyn|duck}For `DuckDNS provider `_, the command line would look like this:
.. code-block:: bash
$ noipy -u -n --provider duck
Or you can just use ``--hostname`` (``-n``) and ``--provider`` arguments if you have
previously `stored your auth information <#storing-auth-information>`_ with ``--store`` option... code-block:: bash
$ noipy --hostname --provider {generic|noip|dyn| duck}
You can also specify a custom DDNS URL (thanks to `@jayennis22 `_):
.. code-block:: bash
$ noipy --hostname [--provider generic]
--urlIt is also possible to inform an IP address other than the machine's current:
.. code-block:: bash
$ noipy --hostname 127.0.0.1
If ``--provider`` option is not informed, **generic** will be used as provider.
For details:
.. code-block:: bash
$ noipy --help
Storing auth information
------------------------With ``--store`` option it is possible to store login information. The
information is sotred in ``$HOME/.noipy/`` directory:.. code-block:: bash
$ noipy --store --username --password \
--provider {generic|noip|dyn| duck}Or simply:
.. code-block:: bash
$ noipy --store --provider {generic|noip|dyn| duck}
And type username and password when required.
**Note:** password is stored simply encoded with
`Base64 `_ method and is not actually
*encrypted*!Running tests
~~~~~~~~~~~~~Install tests dependencies (`tox `_
and `flake8 `_):.. code-block:: bash
$ pip install -r requirements_dev.txt
Test the code against all supported Python versions and check it against **PEP8** with ``tox``:
.. code-block:: bash
$ tox
Check **PEP8** only:
.. code-block:: bash
$ tox -e pep8
Copyright & License
-------------------.. image:: https://img.shields.io/github/license/pv8/noipy.svg?style=flat-square
:target: LICENSE
:alt: LicenseCopyright (c) 2013 Pablo Vieira (pv8).