使用Schlundtech XML-Gateway更新DNS设置
项目描述
此软件包提供了一种使用Schlundtech的XML-Gateway以编程方式更新DNS记录的方法,适用于Schlundtech的客户。
感谢https://github.com/martinlowinski/php-dyndns,它解决了如何以实际的方式与XML-Gateway通信的问题,使其完成我们想要的功能。
使用方法
首先,您需要在您的域名中创建一个具有A记录的子域名,例如 home.example.com,然后安装此软件包,例如使用 pip install ws.ddns(或 git clone ...; pip install -e .)
然后,您可以使用此软件包提供的命令行工具,如下所示
$ schlund-ddns --username USER --password PASS home.example.com 1.2.3.4
如果您为子域名同时设置了A和AAAA记录,则必须分别更新它们,即调用脚本两次,一次使用IPv4地址,另一次使用IPv6地址。
(有关更多配置参数,例如在申请XML-Gateway时告诉您的 context,请参阅 schlund-ddns --help)
除了在命令行上传递参数外,您还可以调用 schlund-ddns --config myconfig.ini(下面将说明文件格式)。
或者,设置提供的CGI脚本 schlund-ddns-cgi 以提供HTTP访问。您需要使用配置文件提供用户名和密码,然后将该文件的路径作为环境变量传递。以下是一个示例Apache配置片段,用于执行此操作
ScriptAlias /dns-update /path/to/ddns/schlund-ddns-cgi <Location /dns-update> SetEnv DDNS_CONFIG /path/to/ddns/config AuthName "Dynamic DNS" AuthType Basic AuthUserFile /path/to/ddns/htpasswd require valid-user </Location>
配置文件是一个标准的ini文件,应如下所示
[default] username = USER password = PASS context = CONTEXT
您可以选择向配置文件添加一个 allowed_hostnames = one.example.com two.example.com 空格分隔的列表,只有那些才会被接受。
HTTP协议基于NoIP的协议,即客户端应执行如下请求以触发DNS更新
http://example.com/dns-update?hostname=home.example.com&myip=1.2.3.4
这里也有HTTP服务的Docker镜像:https://hub.docker.com/r/customelements/schlund-ddns
支持双因素认证
除了这个包外,还需要安装 pip install pyotp
将双因素认证密钥(可能为16个字符,可能需要从设置时使用的二维码中逆向工程)作为 –totp-secret 命令行参数或配置参数传递
变更
1.6.0 (2024-02-05)
变更
支持CGI模式下TOTP(totp)
1.5.0 (2023-09-18)
变更
支持同时具有A和AAAA记录的子域名(ipv6)
1.4.0 (2023-05-12)
变更
在引入totp密钥参数后修复配置解析(totp)
1.3.1 (2023-04-04)
变更
从setup.py切换到pyproject.toml(wheel)
1.3.0 (2023-03-20)
支持命令行脚本的配置文件
正确确定多级子域的域名
支持双因素认证TOTP身份验证
放弃Python-2支持
1.2.0 (2020-10-04)
根据noip.com协议对我们的响应文本进行建模
1.1.1 (2018-03-05)
内部处理 PATH_INFO
1.1.0 (2018-03-03)
添加可选的 allowed_hostnames 配置选项
1.0.4 (2018-03-03)
使Web部分兼容Python-3
1.0.3 (2018-03-03)
使当前-setuptools兼容
1.0.2 (2018-03-03)
使Python-3兼容
1.0.1 (2018-01-14)
从bitbucket迁移到github
1.0.0 (2014-04-06)
第一个版本。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
ws.ddns-1.6.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 38a3b51974a00680a20464a627520df4c1132e462cfbe569e87ce44112fa7369 |
|
MD5 | c6cb7a3bc3a02ed68f65c7c18ac076c4 |
|
BLAKE2b-256 | bfec6d147de65768477dac16a0f376ae42d9991b8b4044cc337172352dc479e0 |
ws.ddns-1.6.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 987115fa7e12f51a131b2f3d336499a2ed01974f8122ac9b31ed091c3e556687 |
|
MD5 | 0531bd3e8258d6adb74fc8493db7dda0 |
|
BLAKE2b-256 | 7c91d230438dcf0813c2f0fa5d5c21ed18a5a6c7315462c59eaf2a96b7e87c60 |