skip to navigation
skip to content

noipy 1.5.0

Command line tool for DDNS IP address updating.

noipy: DDNS update tool

Command 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:

Supported by


“Develop with pleasure!”


To install noipy, simply:

$ pip install noipy

Note: noipy will also install the Requests HTTP library.


Basic usage of noipy command line tool:

$ noipy -u <your username> -p <your password> -n <your hostname on DDNS provider>
        --provider {generic|noip|dyn|duck}

For DuckDNS provider, the command line would look like this:

$ noipy -u <your token> -n <your DuckDNS domain> --provider duck

Or you can just use --hostname (-n) and --provider arguments if you have previously stored your auth information with --store option.

$ noipy --hostname <your hostname on DDNS provider> --provider {generic|noip|dyn| duck}

You can also specify a custom DDNS URL (thanks to @jayennis22):

$ noipy --hostname <your hostname on DDNS provider> [--provider  generic]
        --url <custom DDNS URL>

It is also possible to inform an IP address other than the machine’s current:

$ noipy --hostname <your hostname on DDNS provider>

If --provider option is not informed, generic will be used as provider.

For details:

$ noipy --help

Storing auth information

With --store option it is possible to store login information. The information is sotred in $HOME/.noipy/ directory:

$ noipy --store --username <your username> --password <your password> \
    --provider {generic|noip|dyn| duck}

Or simply:

$ 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!


Improvements & Troubleshooting

If you have any enhancement suggestions or find a bug, please:

  1. Open an issue
  2. Fork the project
  3. Do your magic
  4. Please, PEP8 and test your code
  5. Is everything working? Send a pull request

Running tests

Install tests dependencies (tox and flake8):

$ pip install -r requirements_dev.txt

Test the code against all supported Python versions and check it against PEP8 with tox:

$ tox


1.5.0 (2016-10-30)

  • Automatic deploy to PyPI via Travis CI
  • Minor refactorings
  • Dropped support for Python 3.2

1.4.4 (2016-04-11)

  • Bugfix

1.4.3 (2015-10-15)

  • Included User-Agent in request Header
  • Improvements on plugins test cases
  • Changed code coverage service from Coveralls to Codecov

1.4.2 (2015-08-22)

  • Bugfix: storing auth credentials properly from stdin
  • Test case for --store option getting username/password from stdin

1.4.0 (2015-04-25)

1.3.1 (2014-12-19)

  • Send update to DDNS only if IP address has changed

1.3.0 (2014-12-16)

  • Support for custom DDNS URL via --url parameter

1.2.3 (2014-10-10)

  • Unit tests improvements and PluginsTest bug fixes
  • Custom config directory feature bug fix (--config argument)

1.2.2 (2014-07-03)

  • PEP8’d code (Closes #5)
  • Switched to Apache License, Version 2.0
  • Unit test improvement
  • Minor feature: custom config directory via -c or --config argument.

1.2.1 (2014-06-30)

  • Bug fix (execution via command line. issue #5)

1.2.0 (2014-04-21)

1.1.4 (2013-08-29)

1.1.3 (2013-07-24)

  • Python 3.3 compatibility

1.1.0 (2013-05-15)

1.0.1 (2013-05-10)

  • Added flexibility to DNS updater with abc.ABCMeta
  • Code organization
  • Manual settings file removed (auth info can be stored via command line)

0.1.0 (2013-03-22)

  • Conception
File Type Py Version Uploaded on Size
noipy-1.5.0-py2.py3-none-any.whl (md5) Python Wheel py2.py3 2016-10-30 13KB
noipy-1.5.0.tar.gz (md5) Source 2016-10-30 18KB