Skip to main content

Command line tool for DDNS IP address updating.

Project description

noipy: DDNS update tool

https://img.shields.io/pypi/v/noipy.svg?style=flat-square https://img.shields.io/pypi/dm/noipy.svg?style=flat-square https://img.shields.io/travis/povieira/noipy/master.svg?style=flat-square https://img.shields.io/coveralls/povieira/noipy/master.svg?style=flat-square Code Health https://zenodo.org/badge/doi/10.5281/zenodo.13320.svg?style=flat-square

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:

Installation

To install noipy, simply:

$ pip install noipy

Note: noipy will also install the Requests HTTP library if you haven’t yet.

Usage

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 login 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> 127.0.0.1

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!

Contributing

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

First, install tests dependencies (tox and flake8):

$ pip install -r dev-requirements.txt

To test against all supported Python versions (if you have them installed):

$ tox

Or you can to test against a specific version:

$ tox -e {version}

Where {version} can be py26, py27, py33, py34, pypy and pypy3.

Don’t forget to run pep8:

$ tox -e pep8

Changelog

1.4.1 (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

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page