向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\PyDynDNSNormal.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-md5hmac-sha1hmac-sha224hmac-sha256hmac-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}$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaEclipseMars没有保存首选项   java梯度同步失败:原因:启动失败:   java如何从嵌套的JSON获取数据?   java如何判断可观察对象中的任何对象满足一个条件?   java将字符串转换为保持相同值的byte[]数组   java有没有办法绕过AuditingEntityListener为测试设置数据?   从/usr/share/java中解析linux JAR依赖关系   安卓 My java函数抛出nullpointerexception?   java Gradle使用正确版本的依赖项   JBoss和Java6中带注释的WebService中的web服务ClassCastException   java如何修复codename one中的简单逻辑错误?   java如何迭代矩阵的索引?   java如何在JPanel不可见时将其保存为图像?   java HashMap如何在Kotlin中实现MutableMap接口?   javascript如何在单击后加载特定片段?   EclipseJava为纳什均衡获取所有玩家/策略组合   JavaSpring:Web服务REST在JSON上产生双反斜杠   java为什么ServletContext#getRealPath(“/”)返回相对路径?   java当我的游戏应该重新启动时,我应该如何处理重置SurfaceView和线程?