跳转到主要内容

使用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 (5.7 kB 查看哈希值)

上传时间

构建分布

ws.ddns-1.6.0-py3-none-any.whl (5.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面