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 noipy
Or with Snappy on supported distros:
$ sudo snap 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> 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!
# Install uv (if not already installed)
$ pipx install uv
# Or see https://docs.astral.sh/uv/getting-started/installation/
# Sync test dependencies
$ uv sync --extra tests
# Run tests with tox
$ uv run tox
Install test dependencies and run tests:
$ pip install -e ".[tests]"
$ tox
# Sync linting dependencies
$ uv sync --extra lint
# Run linting with tox
$ uv run tox -e lint
Install linting dependencies and check code style:
$ pip install -e ".[lint]"
$ tox -e lint
noipy uses type hints to improve code quality and maintainability.
# Sync type checking dependencies
$ uv sync --extra typing
# Run type checking with mypy
$ uv run mypy noipy/
Install type checking dependencies and run mypy:
$ pip install -e ".[typing]"
$ mypy noipy/
Copyright (c) 2013 Pablo Vieira (pv8).