donnlee / noipy

Command line tool to update DDNS: No-IP, DuckDNS and DynDNS hosts IP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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/pv8/noipy/master.svg?style=flat-square https://img.shields.io/codecov/c/github/pv8/noipy/master.svg?style=flat-square Code Health https://zenodo.org/badge/doi/10.5281/zenodo.29017.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:

Supported by

PyCharm

Download PyCharm

"Develop with pleasure!"

Installation

To install noipy, simply:

$ pip install noipy

Note: noipy will also install the Requests HTTP library.

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

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

Install tests dependencies (tox and flake8):

$ pip install -r dev-requirements.txt

Test the code against all supported Python versions and check it against PEP8 with tox:

$ tox

Copyright & License

License

Copyright (c) 2013 Pablo O Vieira (pv8).

About

Command line tool to update DDNS: No-IP, DuckDNS and DynDNS hosts IP

License:Apache License 2.0


Languages

Language:Python 98.2%Language:Makefile 1.8%