Git Product home page Git Product logo

domainconnectddns-python's Introduction

Usage

domain-connect-dyndns [-h] [--config CONFIG]
                      {setup,update,status,remove}
                      [--ignore-previous-ip]
                      [--protocols (ipv4, ipv6)] 
                      (--domain DOMAIN | --all)

Positional arguments:

  • {setup,update,status,remove} --- action on domain

Optional arguments:

--config CONFIG         --- config file path
--domain DOMAIN         --- domain to keep up to date
--all                   --- update all domains in config
--ignore-previous-ip    --- update the IP even if no change detected.
--protocols             --- a space separated list of protocols to set up. Possible values: ipv4, ipv6. Default: ipv4
--backup-file           --- file path for backup domains before remove
-h                      --- display help and exit

Installation

    pip install domain-connect-dyndns

Examples

    domain-connect-dyndns setup --domain [domain]
    domain-connect-dyndns setup --domain [domain] --protocols ipv4 ipv6
    domain-connect-dyndns update --domain [domain]
    domain-connect-dyndns status --domain [domain]
    domain-connect-dyndns remove --domain [domain] --backup-file settings.bak
    
    domain-connect-dyndns update --all
    domain-connect-dyndns status --all
    domain-connect-dyndns remove --all

Installation issues

  • On some systems there might be no binary distribution of cryptography package. Additional installation stepsmay be necessary to build this package from the source code. Please refer to the package documentation: https://cryptography.io/en/latest/installation/
  • on FreeBSD the cryptography package can be installed with the following command pkg install security/py-cryptography

domainconnectddns-python's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

domainconnectddns-python's Issues

Error: "Domain doesn't support Domain Connect."

We are on a Raspberry Pi,
lsb_release -d Description: Raspbian GNU/Linux 11 (bullseye)

I installed domain-connect-dyndns:

pi@nextcloudpi:~ $sudo pip3 install domain-connect-dyndns
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting domain-connect-dyndns
  Using cached https://www.piwheels.org/simple/domain-connect-dyndns/domain_connect_dyndns-0.0.9-py3-none-any.whl (10 kB)
Requirement already satisfied: validators>=0.12.6 in /usr/local/lib/python3.9/dist-packages (from domain-connect-dyndns) (0.20.0)
Collecting domain-connect>=0.0.9
  Using cached https://www.piwheels.org/simple/domain-connect/domain_connect-0.0.9-py2.py3-none-any.whl (12 kB)
Requirement already satisfied: requests>=2.21.0 in /usr/lib/python3/dist-packages (from domain-connect-dyndns) (2.25.1)
Requirement already satisfied: dnspython>=1.15.0 in /usr/lib/python3/dist-packages (from domain-connect-dyndns) (2.0.0)
Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from domain-connect>=0.0.9->domain-connect-dyndns) (1.16.0)
Requirement already satisfied: cryptography>=3.3.2 in /usr/lib/python3/dist-packages (from domain-connect>=0.0.9->domain-connect-dyndns) (3.3.2)
Collecting publicsuffixlist>=0.7.7
  Downloading https://www.piwheels.org/simple/publicsuffixlist/publicsuffixlist-0.10.0.20231002-py2.py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 1.2 MB/s 
Collecting future>=0.18.1
  Using cached https://www.piwheels.org/simple/future/future-0.18.3-py3-none-any.whl (492 kB)
Collecting publicsuffix>=1.1.0
  Using cached https://www.piwheels.org/simple/publicsuffix/publicsuffix-1.1.1-py3-none-any.whl (64 kB)
Collecting decorator>=3.4.0
  Using cached https://www.piwheels.org/simple/decorator/decorator-5.1.1-py3-none-any.whl (10 kB)
Installing collected packages: publicsuffixlist, publicsuffix, future, decorator, domain-connect, domain-connect-dyndns
Successfully installed decorator-5.1.1 domain-connect-0.0.9 domain-connect-dyndns-0.0.9 future-0.18.3 publicsuffix-1.1.1 publicsuffixlist-0.10.0.20231002

But:

pi@nextcloudpi:~ $sudo domain-connect-dyndns setup --domain yy.xxxx.de
*** domain-connect-dyndns 0.0.9 ***

Domain doesn't support Domain Connect.

It used to work for years. I called the host (ionos) and they can not find an issue on their side.

I've run out of ideas what to do.

exception occurred

hi

do you have an idée of my problem ?

thanks

~# pip3 install domain-connect-dyndns
~# domain-connect-dyndns setup --domain **MY_DOMAINE_NAME_**


Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/domainconnect/domainconnect.py", line 209, in _identify_domain_connect_api
    dns = self._resolver.query('_domainconnect.{}'.format(domain_root), 'TXT')
  File "/usr/local/lib/python3.7/dist-packages/dns/resolver.py", line 1091, in query
    True)
  File "/usr/local/lib/python3.7/dist-packages/dns/resolver.py", line 1030, in resolve
    (request, answer) = resolution.next_request()
  File "/usr/local/lib/python3.7/dist-packages/dns/resolver.py", line 585, in next_request
    responses=self.nxdomain_responses)
dns.resolver.NXDOMAIN: None of DNS query names exist: _domainconnect.**MY_DOMAINE_NAME_**, _domainconnect.**MY_DOMAINE_NAME_**.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/dyndns/domain_setup.py", line 16, in main
    config = dc.get_domain_config(domain)
  File "/usr/local/lib/python3.7/dist-packages/domainconnect/domainconnect.py", line 249, in get_domain_config
    domain_connect_api = self._identify_domain_connect_api(domain_root)
  File "/usr/local/lib/python3.7/dist-packages/domainconnect/domainconnect.py", line 219, in _identify_domain_connect_api
    raise NoDomainConnectRecordException('Failed to resolve "{}"'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectRecordException: Failed to resolve "**MY_DOMAINE_NAME_**"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/domain-connect-dyndns", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/dist-packages/dyndns/command_line.py", line 76, in main
    print(domain_setup.main(domain, protocols, settings))
  File "/usr/local/lib/python3.7/dist-packages/dyndns/domain_setup.py", line 17, in main
    except NoDomainConnectRecordException or NoDomainConnectSettingsException:
NameError: name 'NoDomainConnectRecordException' is not defined


How I can setup a A-Record for a wildcard subdomain

Thank you for your good work!

I have a domain at ionos.de who supports domain connect.

For the domain I have two A-Records. One for the root domain and one for the wildcard domain „*“!

I can setup and change the A-Record for the root domain with your python module. But how I can do this for the wildcard domain?

Best regards

mkb79

DYNDNS Domain Connect ERROR

When I try to connect my domain with the command "domain-connect-dyndns setup --domain domain.com" it returns the error "Domain doesn't support Domain Connect".
My domain provider is IONOS, and they only tell me that it must be a problem with my server, that they can't do anything, but I've reinstalled ubuntu, I've reinstalled python, pip and the dyndns domain connect, and it still doesn't work. It gives me the same problem with all my domains, until a few days ago it worked perfectly, and I have restored the default settings of all my domains, and it still doesn't work. And I don't know what else to do.

Avoid too frequent updates of IP (some throttling for TTL needed)

Executed 2 times in a row will always update IP. May lead to API flooding with many clients.
Shall account for TTL and make some throttling (default TTL in the template is 10minutes).

No A record found for domain test3.connect.domains
New IP: 82.165.162.158
DNS record succesfully updated.
(env35) root@localhost:~/dyndnstest# domain-connect-dyndns update test3.connect.domains
No A record found for domain test3.connect.domains
New IP: 82.165.162.158
DNS record succesfully updated.```

Don't query for A record in the first update after setup

Steps:

  1. setup dyndns on a new subdomain
  2. run 1st update
  3. check IP of this subdomain

Result:
IP is not resolved, as DNS query in the step 2 does not resolve any IP and caches the negative answer for a period of time (negative TTL).

Expected result:
IP is resolved

Solution:
Avoid IP query on the first run to avoid negative answer cache. Always write to DNS provider on the first run.

Settings.txt written at default location (instead of specified)

I've manually specified where the setting file is (in another folder), but when it runs it creates a new settings.txt in the home folder. I think it does this as it adds the last updated time. It would be good that when using the explicit flag for the setting folder, you then write back to this file

Oddly this behaviour does not happen when using the --ignore-previous-ip flag

As a workaround I just mv the new file to overwrite the original settings.txt. But this is not really ideal

Originally posted by @liput in #18 (comment)

Unable to install on ubuntu 18.04 LTS

I attempted installing with pip and got a warning that python 3.4 is needed:

$ pip install domain-connect-dyndns validators requires Python '>=3.4' but the running Python is 2.7.17

/usr/bin/python is currently symlinked to python2.7, and if I change that link, other apps break.
I attempted installing with pip3 and got a seg fault:

$ pip3 install domain-connect-dyndns Collecting domain-connect-dyndns Collecting validators>=0.12.6 (from domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/41/4a/3360ff3cf2b4a1b9721ac1fbff5f84663f41047d9874b3aa1ac82e862c44/validators-0.18.1-py3-none-any.whl Collecting domain-connect>=0.0.7 (from domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/61/5d/2d85ec830ff8b814cbd9ba073f60f81789e457acfda3020e78f916facc53/domain_connect-0.0.7-py2.py3-none-any.whl Collecting dnspython>=1.15.0 (from domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/90/49/cb426577c28ca3e35332815b795a99e467523843fc83cc85ca0d6be2515a/dnspython-2.0.0-py3-none-any.whl Collecting requests>=2.21.0 (from domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/45/1e/0c169c6a5381e241ba7404532c16a21d86ab872c9bed8bdcd4c423954103/requests-2.24.0-py2.py3-none-any.whl Collecting decorator>=3.4.0 (from validators>=0.12.6->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/ed/1b/72a1821152d07cf1d8b6fce298aeb06a7eb90f4d6d41acec9861e7cc6df0/decorator-4.4.2-py2.py3-none-any.whl Collecting six>=1.4.0 (from validators>=0.12.6->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl Collecting future>=0.18.1 (from domain-connect>=0.0.7->domain-connect-dyndns) Collecting cryptography>=2.8 (from domain-connect>=0.0.7->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/43/2e/8d2de0d73d177184bc9a15137cd9aae46c1b3a59842b5fde30c8b80a5b4e/cryptography-3.1-cp35-abi3-manylinux1_x86_64.whl Collecting publicsuffix>=1.1.0 (from domain-connect>=0.0.7->domain-connect-dyndns) Collecting publicsuffixlist>=0.6.11 (from domain-connect>=0.0.7->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/1c/6a/9a673550e255591bd61daf412dc148d7878069a62145312af2cb14eee114/publicsuffixlist-0.7.4-py2.py3-none-any.whl Collecting certifi>=2017.4.17 (from requests>=2.21.0->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/5e/c4/6c4fe722df5343c33226f0b4e0bb042e4dc13483228b4718baf286f86d87/certifi-2020.6.20-py2.py3-none-any.whl Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests>=2.21.0->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/9f/f0/a391d1463ebb1b233795cabfc0ef38d3db4442339de68f847026199e69d7/urllib3-1.25.10-py2.py3-none-any.whl Collecting idna<3,>=2.5 (from requests>=2.21.0->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl Collecting chardet<4,>=3.0.2 (from requests>=2.21.0->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl Collecting cffi!=1.11.3,>=1.8 (from cryptography>=2.8->domain-connect>=0.0.7->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/82/7e/9cc46f072c9a414b5a6e08c5c2da5db3bff2601e69c4a6d4f6a34e6f9cfc/cffi-1.14.2-cp36-cp36m-manylinux1_x86_64.whl Collecting pycparser (from cffi!=1.11.3,>=1.8->cryptography>=2.8->domain-connect>=0.0.7->domain-connect-dyndns) Using cached https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl Installing collected packages: decorator, six, validators, future, pycparser, cffi, cryptography, dnspython, publicsuffix, publicsuffixlist, domain-connect, certifi, urllib3, idna, chardet, requests, domain-connect-dyndns Successfully installed certifi-2020.6.20 cffi-1.14.2 chardet-3.0.4 cryptography-3.1 decorator-4.4.2 dnspython-2.0.0 domain-connect-0.0.7 domain-connect-dyndns-0.0.8 future-0.18.2 idna-2.10 publicsuffix-1.1.1 publicsuffixlist-0.7.4 pycparser-2.20 requests-2.24.0 six-1.15.0 urllib3-1.25.10 validators-0.18.1 Segmentation fault (core dumped)

In dmesg:
[Wed Sep 9 08:04:47 2020] pip3[27171]: segfault at a9 ip 000000000059c3e4 sp 00007ffd102433b8 error 4 in python3.6[400000+3b4000]

Domain-Update broken

After some time of everything being fine, this error popped up:

Read xxx.xxxxxx.org config.
  IP xxx.xxx.xxx.xxx found in A record
  Public IPv4 address: xxx.xxx.xxx.xxx
No nameservers avalaible for "xxxxxxx.org"
Could not update DNS records.

I cant seem to find any reason/nor understand why this randomly occured

Does anybody know what to do?

No Domain Connect config found for domain

Hello,
I am a customer of IONOS. Probably since today I get the error "No Domain Connect config found for domain" when updating or creating a new domain.
I have not changed anything in my configuration. Does anyone have similar problems or has IONOS problems?

When I try the tool at https://exampleservice.domainconnect.org/sync_index, I get the following message:

"Manual change required.
The domain does not support domain connection. You need to make DNS changes manually.
Reason: No json returned for /settings"

Error message: Conflict: ... Conflicting records, code 409

When my IP address needed updating, I received an error message instead of the expected update:

Conflict: {u'records': [{u'type': u'A', u'host': u'@', u'data': u'[old IP]'}], u'message': u'Conflicting records', u'code': 409}
Could not update DNS record.

What does this mean, and how do I get it to work properly in the future?

Can't run on OpenWrt because of webbrowser

In OpenWrt, the python package doesn't come with the webbrowser library, so it isn't possible to run this on it. It just throws a ModuleNotFoundError.

I can make a PR with the fix if you give me green light :) I would skip ModuleNotFoundError with a try statement, and don't execute the webbrowser.open(context.asyncConsentUrl, autoraise=True) if the module hasn't been imported.

Feature request: Remove domain from settings.txt

Can you add a feature to remove a domain/subdomain from settings.txt?

I have multiple domains and subdomains in my settings.txt. I update my domains with the —all option.

Now I want to remove a specific subdomain and leave all other in config file. I can do it manually. But it would be nice if I can do this with your app. Maybe it would be possible to move them to a backup file for further purpose?

Best regards

Mkb79

ipfy.org very slow

Updating DynDNS-Records works very slow.

protocols = {
        'IP': {'version': 4, 'api': 'https://api.ipify.org', 'record_type': 'A',
               'protocol_enforce': allowed_gai_family_ipv4},
        'IPv4': {'version': 4, 'api': 'https://api.ipify.org', 'record_type': 'A',
                 'protocol_enforce': allowed_gai_family_ipv4},
        'IPv6': {'version': 6, 'api': 'https://api6.ipify.org', 'record_type': 'AAAA',
                 'protocol_enforce': allowed_gai_family_ipv6}
    }

Changed URLs to:

protocols = {
        'IP': {'version': 4, 'api': ' https://api4.my-ip.io/ip.json', 'record_type': 'A',
               'protocol_enforce': allowed_gai_family_ipv4},
        'IPv4': {'version': 4, 'api': ' https://api4.my-ip.io/ip.json', 'record_type': 'A',
                 'protocol_enforce': allowed_gai_family_ipv4},
        'IPv6': {'version': 6, 'api': 'https://api6.my-ip.io/ip.json', 'record_type': 'AAAA',
                 'protocol_enforce': allowed_gai_family_ipv6}
    }

performs much faster.

Tested this Change on my System updating IONOS-DynDNS-Records. Works great.

Ionos - Ubnt 18.04

I cannot get Ubuntu 18.04 to recognize DynDNS. I keep getting an error, "domain-connect-dyndns: command not found" when running the command per instructions from this repo: "domain-connect-dyndns --domain website.com setup"

Can you point me in the right direction?

Trouble domain-connect-dyndns 0.0.9 / python 3.9 / proxmox V 7.0

Hello,
I'm having trouble installing DomainConnectDDNS again. After reinstalling a new hypervisor on a new server. The version of python is 3.9. The error message is as follows when I use the following command:

domain-connect-dyndns setup --domain web-connectivity.fr

Error:

*** domain-connect-dyndns 0.0.9 ***

Traceback (most recent call last):
File "/usr/local/bin/domain-connect-dyndns", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/dist-packages/dyndns/command_line.py", line 81, in main
print(domain_setup.main(domain, protocols, settings))
File "/usr/local/lib/python3.9/dist-packages/dyndns/domain_setup.py", line 19, in main
config = dc.get_domain_config(domain)
File "/usr/local/lib/python3.9/dist-packages/domainconnect/domainconnect.py", line 256, in get_domain_config
ret = self._get_domain_config_for_root(domain_root, domain_connect_api)
File "/usr/local/lib/python3.9/dist-packages/domainconnect/domainconnect.py", line 282, in _get_domain_config_for_root
raise NoDomainConnectSettingsException('No Domain Connect config found for {}.'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectSettingsException: No Domain Connect config found for web-connectivity.fr.

Domain name registration on Ionos:

image

thank you in advance for your help

SSL Error when updating domain

When I try to setup this tool for my domain, it results in an ssl.CertificationError:

Setup: domain-connect-dyndns setup --domain cloud.datktv.de
Update: domain-connect-dyndns update --domain cloud.datktv.de
Result:

root@haproxy:~# domain-connect-dyndns update --domain cloud.datktv.de
Read cloud.datktv.de config.
IP 89.245.71.215 found in A record
2020-03-01 21:09:21,828 ERROR [urllib3.connection] Certificate did not match expected hostname: api.ipify.org. Certificate: {'subject': ((('commonName', 'cloud.datktv.de'),),), 'issuer': ((('countryName', 'US'),), (('organizationName', "Let's Encrypt"),), (('commonName', "Let's Encrypt Authority X3"),)), 'version': 3, 'serialNumber': '************', 'notBefore': 'Mar 1 20:03:38 2020 GMT', 'notAfter': 'May 30 20:03:38 2020 GMT', 'subjectAltName': (('DNS', 'cloud.datktv.de'),), 'OCSP': ('http://ocsp.int-x3.letsencrypt.org',), 'caIssuers': ('http://cert.int-x3.letsencrypt.org/',)}
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in _validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 346, in connect
_match_hostname(cert, self.assert_hostname or hostname)
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 356, in _match_hostname
match_hostname(cert, asserted_hostname)
File "/usr/lib/python3.6/ssl.py", line 331, in match_hostname
% (hostname, dnsnames[0]))
ssl.CertificateError: hostname 'api.ipify.org' doesn't match 'cloud.datktv.de'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 398, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.ipify.org', port=443): Max retries exceeded with url: /?format=json (Caused by SSLError(CertificateError("hostname 'api.ipify.org' doesn't match 'cloud.datktv.de'",),))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/domain-connect-dyndns", line 11, in
sys.exit(main())
File "/usr/local/lib/python3.6/dist-packages/dyndns/command_line.py", line 61, in main
print(domain_update.main(domain, settings, ignore_previous_ip))
File "/usr/local/lib/python3.6/dist-packages/dyndns/domain_update.py", line 47, in main
response = requests.get("https://api.ipify.org", params={'format': 'json'})
File "/usr/local/lib/python3.6/dist-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.6/dist-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.ipify.org', port=443): Max retries exceeded with url: /?format=json (Caused by SSLError(CertificateError("hostname 'api.ipify.org' doesn't match 'cloud.datktv.de'",),))

I don't know, why this tool is trying to match my own certificate onto api.ipify.org

Remove force=True

Normally shall never be necessary (if there is a conflict, there should not be any override without new consent)

NameError: global name 'NoDomainConnectRecordException' is not defined

When i try to setup a domain using this command "domain-connect-dyndns setup --domain example.com" i get the following error.

Traceback (most recent call last):
  File "/usr/local/bin/domain-connect-dyndns", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/dyndns/command_line.py", line 76, in main
    print(domain_setup.main(domain, protocols, settings))
  File "/usr/local/lib/python2.7/dist-packages/dyndns/domain_setup.py", line 17, in main
    except NoDomainConnectRecordException or NoDomainConnectSettingsException:
NameError: global name 'NoDomainConnectRecordException' is not defined

Im running a Nginx web server on a raspberry pi 4 with Raspbian

Documentation needed: How-To: Wildcard Subdomains

Which entries does domain-connect-dyndns alter exactly at my DNS provider?
Is it only the
@-A-record ("TYP/HOSTNAME/WERT/SERVICE" : "A/@/123.456.78.90/Dynamic DNS")
which is modified or is the
wildcard-A-record ("TYP/HOSTNAME/WERT/SERVICE" : "A/*/123.456.78.90/-")
or any other A-record modified as well?

Thanks a lot, i really appreciate the tool!
Best from/to Karlsruhe

Cannot get async token: Failed to read from https://api.domainconnect.ionos.com/v2/oauth/access_token

Hello, since 4 ours i got this message in my logfile:
Read ticket.it-da.de config.
IP 109.250.181.xxx found in A record
Public IP address: 46.142.179.xxx
Cannot get async token: Failed to read from https://api.domainconnect.ionos.com/v2/oauth/access_token?client_id=domainconnect.org&client_secret=inconceivable&grant_type=refresh_token&redirect_uri=https%3A%2F%2Fdynamicdns.domainconnect.org%2Fddnscode&refresh_token=[...]. HTTP code: 500
Could not update DNS records.
directly after a new connection from my dsl router. This is ugly, becouse I have many DNS Entrys and non of them are working anymore.

dynamicdns.domainconnect.org not reachable

Good evening,
when I try to enable my domain for dyndns with the domain-connect-dyndns setup --domain <subdomain> --protocols ipv4 ipv6 command, ionos tries to redirect me to dynamicdns.domainconnect.org, but this address doesn't seem to work.

To make sure the problem is not unique to my end, I queried these two downdetectors, which also return a 'down':
isitup.org
downforeveryoneorjustme.com

Is the service down?

HTTP 400 Failed to read after some days

Hi all,

first of all thank you for this tool. It's very useful to automatically update the server's ip for my ionos domains.

Since I use it however I have the problem, that various dns entries cannot be set after a short period of time. I have a cronjob which runs every minute as specified in the tutorial at ionos on my lxc debian container on a debian server.

I created a bunch of DNS-Entries in the settings file 10+ and after some days some of them start to fail and are not set anymore.
When I manually run the update I see that for those I get the following response:

Cannot get async token: Failed to read from https://api.domainconnect.1and1.com/ v2/oauth/access_token?client_id=domainconnect.org&client_secret=inconceivable&gr ant_type=refresh_token&redirect_uri=https%3A%2F%2Fdynamicdns.domainconnect.org%2 Fddnscode&refresh_token=MTKzDUuyxWta0-wT04EqZHbzoH2WMP_y7E2JQg7Wedw. HTTP code: 400
Could not update DNS records.

I can see that the last time I updated the settings file it was 3 days ago, when all updates ran through, so I guess that it's not the expiring issue as here: #24

Debian Buster 4.19.0-9-amd64
Python 3.7.3
Tutorial: https://www.ionos.de/hilfe/domains/ip-adresse-konfigurieren/domain-mittels-dynamischen-dns-mit-einem-netzwerk-mit-wechselnder-ip-verbinden-linux/

NameError: name 'NoDomainConnectRecordException' is not defined

raceback (most recent call last):
File "/home/User/.local/lib/python3.8/site-packages/domainconnect/domainconnect.py", line 203, in _identify_domain_connect_api
dns = self._resolver.query('_domainconnect.{}'.format(domain_root), 'TXT')
File "/home/User/.local/lib/python3.8/site-packages/dns/resolver.py", line 1002, in query
raise NXDOMAIN(qnames=qnames_to_try, responses=nxdomain_responses)
dns.resolver.NXDOMAIN: None of DNS query names exist: _domainconnect.My-Domain-Name., _domainconnect.My-Domain-Name.home.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/dyndns/domain_setup.py", line 16, in main
config = dc.get_domain_config(domain)
File "/home/User/.local/lib/python3.8/site-packages/domainconnect/domainconnect.py", line 243, in get_domain_config
domain_connect_api = self._identify_domain_connect_api(domain_root)
File "/home/User/.local/lib/python3.8/site-packages/domainconnect/domainconnect.py", line 213, in _identify_domain_connect_api
raise NoDomainConnectRecordException('Failed to resolve "{}"'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectRecordException: Failed to resolve "My-Domain-Name"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/domain-connect-dyndns", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/dyndns/command_line.py", line 76, in main
print(domain_setup.main(domain, protocols, settings))
File "/usr/local/lib/python3.8/dist-packages/dyndns/domain_setup.py", line 17, in main
except NoDomainConnectRecordException or NoDomainConnectSettingsException:
NameError: name 'NoDomainConnectRecordException' is not defined

Config and template location

Hello Pawell,

After a while without problems, I recently had a problem with the automatic update of my IP address.

I would like to know where the configuration is supposed to be, I can't find it.

Moreover, by resuming the documentation via IONOS, the crontab does not seem to work, would there be an error, or am I at fault.

https://www.ionos.fr/assistance/domaines/configurer-des-adresses-ip/connecter-un-domaine-a-un-reseau-avec-changement-dip-en-utilisant-dynamic-dns-linux/

Sincerely Guilhem

Add support to Python 2.7

(env27) root@localhost:~/dyndnstest# domain-connect-dyndns setup test3.connect.domains
Traceback (most recent call last):
  File "/root/dyndnstest/env27/bin/domain-connect-dyndns", line 7, in <module>
    from dyndns.command_line import main
  File "/root/dyndnstest/env27/local/lib/python2.7/site-packages/dyndns/command_line.py", line 4, in <module>
    from dyndns import domain_setup
  File "/root/dyndnstest/env27/local/lib/python2.7/site-packages/dyndns/domain_setup.py", line 3, in <module>
    from json import JSONDecodeError
ImportError: cannot import name JSONDecodeError

Token Expiration after long phase of unchanged IP

Hi !
I am experiencing an issue in this particular situation:
An IP update fails with this message:

Cannot get async token: Failed to read from https://api.domainconnect.1and1.com/v2/oauth/access_token?client_id=domainconnect.org&client_secret=inconceivable&grant_type=refresh_token&redirect_uri=https%3A%2F%2Fdynamicdns.domainconnect.org%2Fddnscode&refresh_token=xxxxxxxxxxx. HTTP code: 400
Could not update DNS record.

I suspect that the refresh token has expired. And the reason would be that the IP didn't change over a long period of time:
Last IP update was 2019-12-02
Next IP update was supposed to happen on: 2020-02-21
That's more than 3 monthes.

So how can I avoid this? Is there a way to enforce an update token.

Thanks for any help

Cannot get async token

Hey,
some days ago, the service stoped working!

I got this error when updating the A record manualy.

Cannot get async token: Failed to read from https://api.domainconnect.1and1.com/v2/oauth/access_token?client_id=domainconnect.org&client_secret=inconceivable&grant_type=refresh_token&redirect_uri=https%3A%2F%2Fdynamicdns.domainconnect.org%2Fddnscode&refresh_token=MTLKq9tYZYh3yeeFAXQepiyzogdApxs1GHoJ2CG19qI. HTTP code: 400

What can i do? I reinstalled everything. If i install the domain by using domain-connect-dyndns setup --domain blabla.com it works for one time!

Kind regard
M

Domain Connect Dydns not working

Hello,

It seems that D-C-D is not working anymore.
When I try to update my domains I got this error:

domain-connect-dyndns update --all
*** domain-connect-dyndns 0.0.9 ***

Read exampledomain.com config.
IP YY.YY.YY.YY found in A record
Public IPv4 address: XX.XX.XX.XX
Failed to get async token: 400 invalid_request
Could not update DNS records.

Do you have any tips for that please ?

Regards

please add information on what this does to the README

I found this tool via the ionos.com website. I wonder if this is a generic dyndns client or if it is specific to that hoster. It would save visitors a bit of time if you clarified very briefly in the README what your programs does.

Can you help me again ?

Hello,
I come back to you because I thought I had solved my problem and it is not.

`
C:\Users\Administrator\Downloads>python -m pip install --upgrade pip
Requirement already up-to-date: pip in c:\program files (x86)\python38-32\lib\site-packages (20.2.3)

C:\Users\Administrator\Downloads>pip install domain-connect-dyndns
Collecting domain-connect-dyndns
Using cached domain-connect-dyndns-0.0.8.tar.gz (7.3 kB)
Collecting validators>=0.12.6
Using cached validators-0.18.1-py3-none-any.whl (19 kB)
Collecting requests>=2.21.0
Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting dnspython>=1.15.0
Using cached dnspython-2.0.0-py3-none-any.whl (208 kB)
Collecting domain-connect>=0.0.7
Using cached domain_connect-0.0.7-py2.py3-none-any.whl (12 kB)
Collecting decorator>=3.4.0
Using cached decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting six>=1.4.0
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2020.6.20-py2.py3-none-any.whl (156 kB)
Collecting idna<3,>=2.5
Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
Using cached urllib3-1.25.10-py2.py3-none-any.whl (127 kB)
Collecting chardet<4,>=3.0.2
Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting future>=0.18.1
Using cached future-0.18.2.tar.gz (829 kB)
Collecting publicsuffix>=1.1.0
Using cached publicsuffix-1.1.1.tar.gz (66 kB)
Collecting cryptography>=2.8
Downloading cryptography-3.1.1-cp38-cp38-win32.whl (1.3 MB)
|████████████████████████████████| 1.3 MB 1.3 MB/s
Collecting publicsuffixlist>=0.6.11
Using cached publicsuffixlist-0.7.4-py2.py3-none-any.whl (88 kB)
Collecting cffi!=1.11.3,>=1.8
Downloading cffi-1.14.3-cp38-cp38-win32.whl (166 kB)
|████████████████████████████████| 166 kB 2.2 MB/s
Collecting pycparser
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Building wheels for collected packages: domain-connect-dyndns, future, publicsuffix
Building wheel for domain-connect-dyndns (setup.py) ... done
Created wheel for domain-connect-dyndns: filename=domain_connect_dyndns-0.0.8-py3-none-any.whl size=9800 sha256=974bfe193c5972a660777e293303b86f4d53deb983c5b67ae2b62afec6bfdb96
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\0b\a7\5f\e6031eadccb338b275cca174a9a16845bf428c8d5bb5264685
Building wheel for future (setup.py) ... done
Created wheel for future: filename=future-0.18.2-py3-none-any.whl size=491062 sha256=277144e852948c7c0b26d148b0a9aa4a151d08744f2c8106c8adfa327b6b86a9
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\8e\70\28\3d6ccd6e315f65f245da085482a2e1c7d14b90b30f239e2cf4
Building wheel for publicsuffix (setup.py) ... done
Created wheel for publicsuffix: filename=publicsuffix-1.1.1-py3-none-any.whl size=64136 sha256=3f02bc320452a9926d1aa21e2d63e36fa40c2c4a05eaf368c3430287e805054c
Stored in directory: c:\users\administrator\appdata\local\pip\cache\wheels\db\36\40\38c901aec542f38197f630f6a76c9432dbff8b469505e85ad1
Successfully built domain-connect-dyndns future publicsuffix
Installing collected packages: decorator, six, validators, certifi, idna, urllib3, chardet, requests, dnspython, future, publicsuffix, pycparser, cffi, cryptography, publicsuffixlist, domain-connect, domain-connect-dyndns
Successfully installed certifi-2020.6.20 cffi-1.14.3 chardet-3.0.4 cryptography-3.1.1 decorator-4.4.2 dnspython-2.0.0 domain-connect-0.0.7 domain-connect-dyndns-0.0.8 future-0.18.2 idna-2.10 publicsuffix-1.1.1 publicsuffixlist-0.7.4 pycparser-2.20 requests-2.24.0 six-1.15.0 urllib3-1.25.10 validators-0.18.1

C:\Users\Administrator\Downloads>domain-connect-dyndns setup --domain web-connectivity.fr
Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\domain_setup.py", line 16, in main
config = dc.get_domain_config(domain)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\domainconnect.py", line 245, in get_domain_config
ret = self._get_domain_config_for_root(domain_root, domain_connect_api)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\domainconnect.py", line 271, in _get_domain_config_for_root
raise NoDomainConnectSettingsException('No Domain Connect config found for {}.'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectSettingsException: No Domain Connect config found for web-connectivity.fr.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\program files (x86)\python38-32\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Program Files (x86)\Python38-32\Scripts\domain-connect-dyndns.exe_main
.py", line 7, in
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\command_line.py", line 76, in main
print(domain_setup.main(domain, protocols, settings))
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\domain_setup.py", line 17, in main
except NoDomainConnectRecordException or NoDomainConnectSettingsException:
NameError: name 'NoDomainConnectRecordException' is not defined

C:\Users\Administrator\Downloads>domain-connect-dyndns setup --domain web-connectivity.fr
Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\socket.py", line 796, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\domain_setup.py", line 16, in main
config = dc.get_domain_config(domain)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\domainconnect.py", line 245, in get_domain_config
ret = self._get_domain_config_for_root(domain_root, domain_connect_api)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\domainconnect.py", line 264, in _get_domain_config_for_root
response = get_json(self._networkContext, url)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\network.py", line 155, in get_json
return json.loads(get_http(context, url))
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\network.py", line 190, in get_http
connection.request('GET', path)
File "c:\program files (x86)\python38-32\lib\http\client.py", line 1255, in request
self._send_request(method, url, body, headers, encode_chunked)
File "c:\program files (x86)\python38-32\lib\http\client.py", line 1301, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "c:\program files (x86)\python38-32\lib\http\client.py", line 1250, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "c:\program files (x86)\python38-32\lib\http\client.py", line 1010, in _send_output
self.send(msg)
File "c:\program files (x86)\python38-32\lib\http\client.py", line 950, in send
self.connect()
File "c:\program files (x86)\python38-32\lib\http\client.py", line 1417, in connect
super().connect()
File "c:\program files (x86)\python38-32\lib\http\client.py", line 921, in connect
self.sock = self._create_connection(
File "c:\program files (x86)\python38-32\lib\socket.py", line 796, in create_connection
sock.connect(sa)
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\program files (x86)\python38-32\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Program Files (x86)\Python38-32\Scripts\domain-connect-dyndns.exe_main
.py", line 7, in
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\command_line.py", line 76, in main
print(domain_setup.main(domain, protocols, settings))
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\domain_setup.py", line 17, in main
except NoDomainConnectRecordException or NoDomainConnectSettingsException:
NameError: name 'NoDomainConnectRecordException' is not defined

C:\Users\Administrator\Downloads>pip install domain-connect-dyndns
Requirement already satisfied: domain-connect-dyndns in c:\program files (x86)\python38-32\lib\site-packages (0.0.8)
Requirement already satisfied: dnspython>=1.15.0 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect-dyndns) (2.0.0)
Requirement already satisfied: domain-connect>=0.0.7 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect-dyndns) (0.0.7)
Requirement already satisfied: validators>=0.12.6 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect-dyndns) (0.18.1)
Requirement already satisfied: requests>=2.21.0 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect-dyndns) (2.24.0)
Requirement already satisfied: six>=1.12.0 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect>=0.0.7->domain-connect-dyndns) (1.15.0)
Requirement already satisfied: publicsuffixlist>=0.6.11 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect>=0.0.7->domain-connect-dyndns) (0.7.4)
Requirement already satisfied: cryptography>=2.8 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect>=0.0.7->domain-connect-dyndns) (3.1.1)
Requirement already satisfied: publicsuffix>=1.1.0 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect>=0.0.7->domain-connect-dyndns) (1.1.1)
Requirement already satisfied: future>=0.18.1 in c:\program files (x86)\python38-32\lib\site-packages (from domain-connect>=0.0.7->domain-connect-dyndns) (0.18.2)
Requirement already satisfied: decorator>=3.4.0 in c:\program files (x86)\python38-32\lib\site-packages (from validators>=0.12.6->domain-connect-dyndns) (4.4.2)
Requirement already satisfied: chardet<4,>=3.0.2 in c:\program files (x86)\python38-32\lib\site-packages (from requests>=2.21.0->domain-connect-dyndns) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in c:\program files (x86)\python38-32\lib\site-packages (from requests>=2.21.0->domain-connect-dyndns) (2.10)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\program files (x86)\python38-32\lib\site-packages (from requests>=2.21.0->domain-connect-dyndns) (1.25.10)
Requirement already satisfied: certifi>=2017.4.17 in c:\program files (x86)\python38-32\lib\site-packages (from requests>=2.21.0->domain-connect-dyndns) (2020.6.20)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in c:\program files (x86)\python38-32\lib\site-packages (from cryptography>=2.8->domain-connect>=0.0.7->domain-connect-dyndns) (1.14.3)
Requirement already satisfied: pycparser in c:\program files (x86)\python38-32\lib\site-packages (from cffi!=1.11.3,>=1.8->cryptography>=2.8->domain-connect>=0.0.7->domain-connect-dyndns) (2.20)

C:\Users\Administrator\Downloads>domain-connect-dyndns setup --domain web-connectivity.fr
Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\domain_setup.py", line 16, in main
config = dc.get_domain_config(domain)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\domainconnect.py", line 245, in get_domain_config
ret = self._get_domain_config_for_root(domain_root, domain_connect_api)
File "c:\program files (x86)\python38-32\lib\site-packages\domainconnect\domainconnect.py", line 271, in _get_domain_config_for_root
raise NoDomainConnectSettingsException('No Domain Connect config found for {}.'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectSettingsException: No Domain Connect config found for web-connectivity.fr.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "c:\program files (x86)\python38-32\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\program files (x86)\python38-32\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Program Files (x86)\Python38-32\Scripts\domain-connect-dyndns.exe_main
.py", line 7, in
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\command_line.py", line 76, in main
print(domain_setup.main(domain, protocols, settings))
File "c:\program files (x86)\python38-32\lib\site-packages\dyndns\domain_setup.py", line 17, in main
except NoDomainConnectRecordException or NoDomainConnectSettingsException:
NameError: name 'NoDomainConnectRecordException' is not defined`

here is the TXT in the IONOS config:

`

  TXT _domainconnect "api.domainconnect.1and1.com"

`

Is this still a problem with my DNS records or a problem with Python or your code?

It is really starting to exceed my skills.

Thank you for your help

Domain Connect DynDns unsupported

Since the move of my domain-connect-service instance from one VM to another VM, the synchronization is not working anymore. On the old host version, 0.4.x was installed and on the version 0.9.0 is installed. Since then every time I want to set up a domain (that was used on the old host) I get the following error:

*** domain-connect-dyndns 0.0.9 ***

Domain doesn't support Domain Connect.

But resetting the domain also doesn't solve the problem.
My DNS provider is 1&1(IONOS).

problem with python 3.10

root@it-da:/usr/local/bin# domain-connect-dyndns --config ~/dyndns/settings.txt --domain debian.it-da.de setup
*** domain-connect-dyndns 0.0.9 ***

Traceback (most recent call last):
File "/usr/local/bin/domain-connect-dyndns", line 33, in
sys.exit(load_entry_point('domain-connect-dyndns==0.0.9', 'console_scripts', 'domain-connect-dyndns')())
File "/usr/local/lib/python3.10/dist-packages/dyndns/command_line.py", line 81, in main
print(domain_setup.main(domain, protocols, settings))
File "/usr/local/lib/python3.10/dist-packages/dyndns/domain_setup.py", line 19, in main
config = dc.get_domain_config(domain)
File "/usr/local/lib/python3.10/dist-packages/domainconnect/domainconnect.py", line 256, in get_domain_config
ret = self._get_domain_config_for_root(domain_root, domain_connect_api)
File "/usr/local/lib/python3.10/dist-packages/domainconnect/domainconnect.py", line 282, in _get_domain_config_for_root
raise NoDomainConnectSettingsException('No Domain Connect config found for {}.'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectSettingsException: No Domain Connect config found for it-da.de.
root@it-da:/usr/local/bin#

Cannot update my domain anymore -- Failed to resolve "example.de"

Hello, unfortunately i cannot update my domains anymore. If i try this i get the following messages
Read whatever.example.de config.
IP 99.00.93.72 found in A record
Public IPv4 address: 99.00.93.118
Failed to resolve "example.de"
Could not update DNS records.

I changed domainnames and IPs for security reasons
When i try to resolve example.de with nslookup, i works as expected.

I am not sure, but it could be that this behavior appeared after apt update && apt upgrade on my Ubuntu 18.04. 2 weeks ago. In the meantime (after noticing the error) i did an update to domain-connect-dyndns 0.0.8 but that changed nothing.

If i try to setup a new domain with "domain-connect-dyndns setup" (after removing the old entry) i get the same behavior as with issue #32 .

Honestly i don't know where to look for this error. Is it my Ubuntu update ? Error on provider side (IONOS) ?

Sorry, Iam completely lost with that and desperately need this service (like it is always with error reports :-) Cheers Chris

Some error after install (need help)

Hello,
I wanted to thank you first for this tool.

I have a problem, I used your solution with IONOS, the executable worked fine on Windows 10. I invested in a server running Windows Server 2019, there I couldn't make it work.

So I tried on my VM's under Windows 10 that no longer works, under Debian Buster I also have problems.

Can you help me

Some screen

Python 2.7.16 running and 3.7 installed
pip 18.1

https://ibb.co/CJKBDDm

forced 3.7

and reinstall same problems

https://ibb.co/34KKmtP

Once again thank you for your work and thank you for excusing my English. If you can help me, I would appreciate it.

cordially

Did not work on armbian

Hey,
to make the installation run, i needed to install
sudo apt-get install libffi-dev

is this correct?

No way to define ip and port manually

Since I'm using a vpn to host, with a specific port, I need to be able to specify those. The documentation doesn't describe anything allowing that. Thanks.

SSL Error with api.ipify.org when trying to update IP

Hi everybody,

I have an SSL issue with the tool.

When trying to update the IP, no matter which protocol, it will always give a SSLError:

domain-connect-dyndns update --protocols ipv4 ipv6 --domain vpn.axtunes.com
*** domain-connect-dyndns 0.0.9 ***


Read xxx.xxx.com config.
HTTPSConnectionPool(host='api.ipify.org', port=443): Max retries exceeded with url: /?format=json (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)')))
  Could not retrieve an IPv4 address. Rerun setup with an adjusted --protocols parameter.
None

When running the setup with this command again, it will still trigger the same error:
domain-connect-dyndns setup --protocols ipv4 ipv6 --domain xxx.xxx.com

Python OpenSSL Version is the following:

>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.1.1n  15 Mar 2022'

Linux SSL version is:

openssl version
OpenSSL 1.1.1n  15 Mar 2022

OS:

PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Can you advise me how to solve the problem?

No Domain Connect config found for domain

Until yesterday everything worked fine. But today when I try to setup a domain this error is raised:

Traceback (most recent call last):
File "/home/haproxyuser/.local/lib/python3.6/site-packages/dyndns/domain_setup.py", line 16, in main
config = dc.get_domain_config(domain)
File "/home/haproxyuser/.local/lib/python3.6/site-packages/domainconnect/domainconnect.py", line 245, in get_domain_config
ret = self._get_domain_config_for_root(domain_root, domain_connect_api)
File "/home/haproxyuser/.local/lib/python3.6/site-packages/domainconnect/domainconnect.py", line 271, in _get_domain_config_for_root
raise NoDomainConnectSettingsException('No Domain Connect config found for {}.'.format(domain_root))
domainconnect.domainconnect.NoDomainConnectSettingsException: No Domain Connect config found for my.domain

I tried to solve it with issue #33 and #35 but it didn't help.

Do you have an idea, what is wrong?

Exchange code to access_token in setup phase

"code" is short-lived so shall be exchanged into access_token/refresh_token right away, not saved till 1st update.

Another option is to trigger 1st update already in setup, which brings benefit of directly testing the whole update (so after setup user is 100% all works fine).

please define default location for settings.txt

Hi,
I try the tool with a ionos 1und1 domain. I would like a definition of the location from the default config file exp: /usr/local/etc/settings.txt would be better then current directory. I found many settings.txt everywhere yesterday :-)
Thank you for that good solution!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.