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.
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 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 toxInstall 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 lintInstall linting dependencies and check code style:
$ pip install -e ".[lint]"
$ tox -e lintnoipy 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).