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:
To install noipy, simply:
$ pip install noipy
Note: noipy will also install the Requests HTTP library if you haven't yet.
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
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!
If you have any enhancement suggestions or find a bug, please:
- Open an issue
- Fork the project
- Do your magic
- Please, PEP8 and test your code
- Is everything working? Send a pull request
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
Copyright (c) 2013 Pablo O Vieira (povieira).