SkillAgentSearch skills...

OwnDynDNS

Self-hosted dynamic DNS php script for FRITZ!Box and netcup DNS API

Install / Use

/learn @fernwerker/OwnDynDNS
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

ownDynDNS

Self-hosted dynamic DNS php script to update netcup DNS API from Router like AVM FRITZ!Box or UniFi Gateways

Authors

Usage

Installation

  • Copy all files to your webspace

  • create a copy of .env.dist as .env and configure:

    • username -> The username for your Router to authenticate (so not everyone can update your DNS)
    • password -> password for your Router
    • apiKey -> API key which is generated in netcup CCP
    • apiPassword -> API password which is generated in netcup CCP
    • customerId -> your netcup Customer ID
    • debug -> true|false enables debug mode and generates output of update.php (normal operation has no output)
  • Create each host record in your netcup CCP (DNS settings) before using the script. The script does not create any missing records.

AVM FRITZ!Box Settings

  • Go to "Internet" -> "Freigaben" -> "DynDNS"
  • Choose "Benutzerdefiniert"
  • Update-URL: https://<url of your webspace>/update.php?user=<username>&password=<pass>&ipv4=<ipaddr>&ipv6=<ip6addr>&domain=<domain>
    • only the url needs to be adjusted, the rest is automatically filled by your AVM FRITZ!Box
    • http or https is possible if valid SSL certificate (e.g. Let's Encrypt)
  • Single Domain:
    • Domainname: <host record that is supposed to be updated>
  • Multiple Domains:
    • Domainname: <first host record that is supposed to be updated>,<second host record that is supposed to be updated>,....
  • Username: <username as defined in .env file>
  • Password: <password as definied in .env file>

UniFi Gateways

  • Go to "Settings" -> "Internet" -> "Choose WAN Interface" -> "Dynamic DNS" -> "+ Create New Dynamic DNS"
  • Service "Choose -> dyndns"
  • Hostname: <host record that is supposed to be updated>
  • Username: <username as defined in .env file>
  • Password: <password as definied in .env file>
  • Server: dyn.yourdomain.com/update.php/\/nic/update?user=%u&password=%p&ipv4=%i&force=0&mode=both&domain=%h

run as cronjob on a **nix based device

References

  • DNS API Documentation: https://ccp.netcup.net/run/webservice/servers/endpoint.php
  • Source of dnsapi.php: https://ccp.netcup.net/run/webservice/servers/endpoint.php?PHPSOAPCLIENT

License

Published under GNU General Public License v3.0
© Felix Kretschmer, 2021

Related Skills

View on GitHub
GitHub Stars164
CategoryDevelopment
Updated4d ago
Forks43

Languages

PHP

Security Score

95/100

Audited on Mar 27, 2026

No findings