向DNS服务器发送动态DNS更新。
pydyndns的Python项目详细描述
概述
PyDynDNS向DNS服务器发送动态DNS更新。Pydynds的原则是 具体如下:
- PyDynDNS允许计算机在DNS服务器上注册自己的地址。 PyDynDNS不会帮助DHCP服务器注册其所有客户端。Pydynds是 对于正在使用的DHCP服务器无法发出DNS的情况非常有用 更新。在
- PyDynDNS使用DNS协议执行动态更新。许多商业 动态DNS提供程序使用基于HTTP的更新接口。Pydynds是的 不支持这些接口。在
- PyDynDNS只更新A和AAAA记录。在
- PyDynDNS很小而且很轻,可以从Cron作业运行 或DHCP客户端地址更改回调。跑步是完全合理的 大约每分钟一次。它只会在更改后发送更新 制造的。在
依赖关系
PyDynDNS需要以下包,所有这些包都可以通过pip
获得:
- dnspython公司
- 网友
使用
PyDynDNS可以从命令行调用。它使用标准的命令行
选项解析并理解-h
和--help
选项以显示用法
信息。在
要注册的名称取自计算机的当前主机名。这个 要注册的地址来自一个或多个网络接口,这些接口是 在命令行上传递。要与之对话的服务器取自SOA记录 覆盖计算机的主机名。每次更新都会删除所有关联的记录 然后使用主机名为每个主机的 IP地址。在
中提供了一对Windows任务计划程序作业文件
examples/tasksched
子目录。这些假设PyDynDNS安装在
C:\Python3.7\Bin\PyDynDNS
。Normal.xml
作业每10分钟运行一次,
从系统启动后10分钟开始,以保持DNS名称作为IP最新
地址改变。启动时,Force.xml
作业使用-f
选项运行一次,
以确保其他操作系统所做的更新被清除
系统的当前地址被正确注册。在
配置文件
PyDynDNS使用JSON格式的配置文件。顶层配置 文件必须是具有以下键的JSON对象:
- cache(必选,string或boolean):缓存文件的名称,
true
到 使用平台默认缓存文件,或false
不使用缓存文件。 PyDynDNS每次执行更新时都会写入此文件。调用时, 它首先检查缓存文件,以确定是否需要更新 执行;如果与缓存文件相比没有数据更改,则更新 跳过。在一台操作系统计算机上,这个文件可以存储在任何地方。在 多操作系统计算机,这个文件应该存储在 在重新启动时销毁,以便在其他操作系统进行注册更改时 将被覆盖。如果省略,则不使用缓存文件,并且 调用会导致发送更新。在 - ipv4(必需,布尔值):是否注册ipv4(A)记录。在
- ipv6(必需,对象):有关ipv6的配置;请参阅下文。在
- 日志记录(必需,对象):日志记录配置,如
Python日志记录配置字典架构位于
https://docs.python.org/3/library/logging.config.html#logging-config-dictschema。
请注意,名为
pydyndns
的记录器用于所有输出。在 - ttl(必选,number):创建的DNS记录的生存时间,以秒为单位。在
- tsig(可选,object):关于tsig身份验证的配置;请参阅下面的内容。在
ipv6对象
ipv6对象包含以下密钥:
- enable(必需,boolean):是否注册IPv6(AAAA)记录。在
- teredo(必需,boolean):是否包括teredo地址。在
tsig对象
tsig对象(如果存在)包含以下键:
- algorithm(必选,string):要使用的TSIG算法的名称,one of
hmac-md5
,hmac-sha1
,hmac-sha224
,hmac-sha256
,hmac-sha384
,或hmac-sha512
。在 - key(必选,string):base-64编码的共享机密。在
- keyname(必需,string):密钥的名称,必须与密钥匹配 服务器所需的名称。在
UNIX syslog dæmon输出的示例记录器对象
{"version":1,"formatters":{"syslog":{"format":"%(name)s: %(message)s"}},"handlers":{"syslog":{"class":"logging.handlers.SysLogHandler","address":"/dev/log","facility":"local0","formatter":"syslog"}},"root":{"level":"WARNING","handlers":["syslog"]}}
Windows事件记录器输出的示例记录器对象
这需要安装pythonwin32扩展(python -m pip install pypiwin32
)。在
如果您使用低权限Windows帐户(例如本地服务)运行, 您可以将消息写入事件日志,但不能注册新事件 消息来源。以管理员身份使用NTEventLogHandler运行pydynns一次 configured将注册事件源,之后将进行后续调用 可以从低权限帐户生成。在
^{pr2}$- 项目
标签: