# netcup DNS Update DNS A/AAAA records with your current external IP address using the netcup DNS API. ## Installation On Arch Linux: ```shell make ``` With `pip`: ```shell make install-pip ``` ## Configuration For each netcup customer, create a `.json` configuration file inside `/etc/netcup-dpns`. There is an [example configuration](cfg/example.json). ## TODOs Caching: - Add parameter `--cache` which saves retrieved DNS records as JSON files. - The method `update_record_destination` will then check if the arguments are the same as the saved JSON record. - Only if they differ, any requests to the API endpoint will be made. Alternative external IP detection: ```python def external_ip_upnp(): """ https://stackoverflow.com/a/41385033 Didn't work for me. Even after double checking fritz.box settings: fritz.box > Heimnetz > Netzwerk > Statusinformationen über UPnP übertragen """ import miniupnpc u = miniupnpc.UPnP() u.discoverdelay = 1000 u.discover() u.selectigd() print('external ip address: {}'.format(u.externalipaddress())) ```