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:
Install with pip:
$ pip install noipyOr with Snappy on supported distros:
$ sudo snap install noipyNote: 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 duckOr 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> 127.0.0.1If --provider option is not informed, generic will be used as provider.
Behind a 4G antenna the IP address obtained may be different from the actual IP address of the router. For the Dlink DWR-921 4G it is possible to obtain the correct address with the following parameters:
$ noipy ... -r <your DWR router IP> -ru <admin user> -rp <admin password>For details:
$ noipy --helpWith --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!
Install tests dependencies (tox and flake8):
$ pip install -r requirements_dev.txtTest the code against all supported Python versions and check it against PEP8 with tox:
$ toxCheck PEP8 only:
$ tox -e pep8Copyright (c) 2013 Pablo Vieira (pv8).