如何以编程方式更新DNS设置

59次阅读
没有评论

问题描述

想知道如何以编程方式更新DNS设置,以避免手动在注册商处更新域名的DNS设置。用户还想知道哪些注册商提供API来自动更新DNS设置。具体来说,用户需要手动更新以下内容:
– DKIM设置的TXT字段
– SPF设置的TXT字段
– 每次更改外部IP时的A记录

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

Amazon Web Services(AWS)提供了一项名为Route53的服务,可以用于自动更新DNS设置。您可以使用REST调用,但使用他们的命令行工具或PHP、Python或JavaScript的绑定更容易。
以下是一个入门点,route53 change resource record sets调用可用于更新或插入域上的一个或多个记录。
https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html
当然,您需要创建一个AWS账户,设置权限并将域名服务器委托给Route53。
这项服务并非免费,但价格相对便宜,前25个域名每个月0.50美元,之后每个月0.10美元。

方案2

您可以使用Python中的dns.resolver或dns.rdatatype库来更新DNS设置。以下是一个示例代码:

import dns.resolver
import dns.rdatatype
import dns.update

for i in dns.resolver.query('blah.com', 'TXT').answer.response:
   update.replace(% i , 60, dns.rdatatype.TXT, '" NEW RECORD"')

请注意,这只是一个示例代码,您需要根据自己的需求进行修改和适配。

评论1:您可以使用CNAME来管理DKIM记录,这样您只需要在AWS Route 53中管理一个域名(区域),并使用CNAME指向“业务”域名的记录。
评论2:以下是AWS的Python API(名为boto3)的文档:https://boto3.readthedocs.io/en/latest/reference/services/route53.html

以上是两种常见的以编程方式更新DNS设置的方法。您可以根据自己的需求选择适合您的方案。

正文完