DynDNS Server interfacing with the hosting.de API

Overview

HostingDE-DynDNS

This is a server that accepts GET requests with specific query parameters and interfaces with the hosting.de DNS API in order to update DNS records with regularly changing IP addresses automatically.

Running

Install requirements from requirements.txt either directly for the user or in a venv.

pip install -r requirements.txt

Execute with python, optionally with a different config path.

python3 dyndns.py
python3 dyndns.py -c /path/to/config.toml

An template for the config file is given in config.toml.template.

Instead of binding to an IP and port, technically there is an implementation for unix sockets. However, this was never tested - use at your own risk. The config variable for this is bind_socket.

Help output

> python3 dyndns.py -h
usage: dyndns.py [-h] [-c CONFIG]

DynDNS server providing an interface for updates via generic URL

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Config file for the DynDNS server. Defaults to 'config.toml' in the current working directory.

Request Format

The format of the necessary GET request is

GET /dyndns?domain=<domain>&ipv4=<ipv4_address>&ipv6=<ipv6_address>&ttl=<ttl>

The query parameters are

parameter required value
domain yes The domain to update.
ipv4 one of [ipv4, ipv6] The IPv4 for the A record of the domain. Must exist in the DNS zone already.
ipv6 one of [ipv4, ipv6] The IPv6 for the AAAA record of the domain. Must exist in the DNS zone already.
ttl no The TTL of the record. If not given, a default value from the config file is used.

Security Considerations

  • This application is not written to run with SSL and does not provide any authentication. Using a reverse proxy for transport encryption and authentication is expected.
  • Records are only updated, never created. This is to prevent this server from creating arbitrary DNS records.
  • Additionally, you can provide a list of allowed domains in the config. This prevents editing different records from the ones you want for DynDNS via a simple GET request.
  • For the hosting.de API token, you can only select DNS-Service → Zonen → Bearbeiten. There are no additional permissions required, I recommend creating such a least privileges token.
You might also like...

DSM-tui (Decks Server Manager TUI) is a tool that allows server management by viewing active services and server status. It is developed in python with TUI (Terminal User Inteface) interface

DSM-tui (Decks Server Manager TUI) is a tool that allows server management by viewing active services and server status. It is developed in python with TUI (Terminal User Inteface) interface

DSM-TUI Documentation Description DSM-TUI (Decks Server Manager TUI) is a tool that allows server management by viewing active services and server sta

Nov 5, 2022

Coordinator server for client-server-server-client test cases

Traffic Light Trafficlight controller for multiple clients (client-server-server-client) under test. Shape of server still under development. Concept

Nov 10, 2022

Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with Function URL ✨

asgi-aws Build API with ASGI in AWS Lambda with API Gateway HTTP API or REST API, or with Function URL ✨ Installation pip install asgi_aws Example Cre

Sep 23, 2022

This is a Discord server cloner and this will clone all the channels,roles,server image,name and like everything and this is made by Coding India Youtube channel

Join Coding India + my Discord server please! also star this repl so we will help if you got any error or no help lol! Join Coding India Discord Serve

Apr 2, 2022

UpChecker is a simple opensource project to host it fast on your server and check is server up, view statistic, get messages if it is down

UpChecker is a simple opensource project to host it fast on your server and check is server up, view statistic, get messages if it is down. UpChecker - just run file and use project easy

Apr 7, 2022

A Kali Linux web server that listens to a certain port and connects to the client / connect to a remote web server like google.

A Kali Linux web server that listens to a certain port and connects to the client / connect to a remote web server like google.

Socket_kali-linux A Kali Linux web server that listens to a certain port and connects to the client / connect to a remote web server like google. What

Jun 21, 2022

SEPIA Speech-To-Text (STT) Server is a WebSocket based, full-duplex Python server for realtime automatic speech recognition (ASR) supporting multiple open-source ASR engines

SEPIA Speech-To-Text (STT) Server is a WebSocket based, full-duplex Python server for realtime automatic speech recognition (ASR) supporting multiple open-source ASR engines

SEPIA Speech-To-Text Server SEPIA Speech-To-Text (STT) Server is a WebSocket based, full-duplex Python server for realtime automatic speech recognitio

Nov 24, 2022

Websocket server status page that allows me to see at a glace the "health" of my server and its hardware

ServerStats Server health at a glance! This is just a personal project utilizing some skills in a way that is meaningful to me. At the core, this proj

Aug 19, 2022

This project is a Docker container which runs a Django Development server and Mysql Database Server Stack with optional GUI.

The project is intended for developers with some knowledge of Python, Django and Mysql. All settings and config are default and can be customised to suit your needs. It was designed to get Django devs up and running faster with a more powerful database engine.

Sep 16, 2022
Owner
Peter Oettig
Peter Oettig
Minecraft Server Booter, Minecraft Server Crasher, Minecraft Server NullPing, Minecraft Server DDoS and Minecraft Server Bots

SpuffyCrasher-MinecraftBooter Minecraft Server Booter, Minecraft Server Crasher, Minecraft Server NullPing, Minecraft Server DDoS and Minecraft Server

Tahg 3 Apr 14, 2022
Step counting Garmin interfacing/RPi/ESP32 alarm clock system.

WALK-UP ESP32 based intelligent alarm clock. Communicates with Garmin servers to collect step count data thus ensuring the user got off the bed. Pytho

null 1 Jun 16, 2022
A GEMSEO plugin for interfacing pymoo with GEMSEO

A GEMSEO plugin for interfacing pymoo with GEMSEO. This is a MIRROR of our gitlab repository, the development activity and support happen over there.

null 1 Aug 1, 2022
A software with a GUI written in python for interfacing to an arduino robotic arm.

Arduino controlled robotic arm with Python programmed GUI Below is the screenshoot of the first window that will appear once the python script is star

null 1 Aug 29, 2022
Aiowallhaven is an asynchronous API wrapper for popular wallpaper hosting site wallhaven.cc.

aiowallhaven aiowallhaven is an asynchronous API wrapper for popular wallpaper hosting site wallhaven.cc. Basic Usage: from aiowallhaven import WallHa

Dmitriy Efimov 2 Sep 2, 2022
Discord self.token account hosting and mass reporter python

Discord-Report-Spammer Created By: Altify Use: Python and emulated discord user tokens to create reports on a user Developer's Request: If you downloa

Altify 4 Oct 6, 2022
Telegram bot to upload your GDrive/DDL/Telegram files to 10+ free hosting services

MultiUpload Upload your files to 10+ free hosting services. Supported hosts: +----+-------------+---------+ | | Host | MaxSize | +====+=====

bunny 17 Nov 14, 2022
A simple self-hosted personal file hosting and sharing platform

FileForest A simple self-hosted personal file hosting and sharing platform. Build and Install Firstly, ensure you have Docker installed. Clone and ent

ThatOtherAndrew 3 Nov 15, 2022
A simple moderation bot written in Python with disnake.py for self hosting

Simple Moderation Bot A simple moderation Discord bot written in Python with disnake.py for self hosting Installation Follow these steps to install th

null 1 Sep 17, 2022
Starter template for hosting a Django app on Fly.io

Django starter template for Fly.io This template contains a starter Django project, Dockerfile and fly.toml config for hosting a Django app on Fly.io.

Davis Haupt 3 Nov 15, 2022