[![](https://img.shields.io/crates/d/rddns.svg)](https://crates.io/crates/rddns)
[![](https://img.shields.io/github/forks/barrensea/rddns.svg)](https://github.com/BarrenSea/rddns/fork)
[![](https://img.shields.io/github/repo-size/barrensea/rddns.svg)](https://github.com/BarrenSea/rddns)
[![](https://img.shields.io/github/stars/barrensea/rddns.svg)](https://github.com/BarrenSea/rddns)
[![](https://img.shields.io/github/commit-activity/t/barrensea/rddns.svg)](https://github.com/BarrenSea/rddns)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)
Rust DDNS For NSD
Matrix
# RDDNS
A DDNS Server with NSD DNS Server
## Use
### Server
You Can Build from `source`
``` shell
git clone https://github.com/barrensea/rddns && cd rddns
cargo build --release
./target/release/rddns --nds /etc/nsd/zone/example.zone
```
Or use `cargo install`
``` shell
cargo instasll rddns
```
### Client
You Can Use *Curl* with the server
#### DDNS
``` shell
curl -X POST http://your-nsd-server-domain/ddns/your-domain-want-to-change/new-address/password
```
##### Example
``` shell
curl -XPOST http://123.com/ddns/www.123.com./123.123.123.123/password
curl -XPOST http://123.com/ddns/www/123.123.123.123/mypassword
curl -XPOST http://123.com/ddns/www/$(curl -XGET http://123.com/ip)/mypassword
```
#### Get your ip
``` shell
curl -XGET http://your-nsd-server-domain/ddns/your-domain-want-to-change/new-address
```
##### Example
``` shell
curl http://123.com/ip
```
## Help
```
DDNS Server and Client for Nsd
Usage: rddns [OPTIONS] --nsd --auth
Options:
-l, --listen [default: 0.0.0.0:3000]
-n, --nsd
-w, --workers [default: 1]
-a, --auth
-h, --help Print help
-V, --version Print version
```