以编程方式将A记录添加到DNS区域文件?

时间:2015-01-23 11:36:46

标签: dynamic dns records zone

我在一家公司工作,我们在GoDaddy上托管了一个域名。对于我们正在创建的网站/应用程序,我们需要能够以编程方式添加" A记录"到 DNS区域文件,将特定子域指向特定的IP地址/服务器。这将通过PHP或C#完成,我们的应用程序有两个不同的服务器,它并不重要,我们只需要该功能。我知道GoDaddy并没有给你这个功能,也没有API,但我想知道是否有人可以推荐一个便宜/实惠的服务让我这样做?我不认为我们需要像动态DNS(或者我们愿意)这样的东西,但如果有人知道任何事我会非常感激。

总而言之,我们正在寻找一种超级便宜且简单的方法,以编程方式将自定义A记录添加到区域文件中。一个免费的代码库也很适合这个。我们的应用程序的工作方式,我们不能使用通配符或使其过于复杂,控制DNS区域文件是最有益的。谢谢!

3 个答案:

答案 0 :(得分:4)

不幸的是,这里的其他回复并没有太大帮助,但我确实在我自己的解决方案中遇到了问题。我将发布我的解决方案,以帮助其他可能需要以编程方式创建A记录并从其网站脚本中修改其他DNS区域文件设置的人。

我在www.cloudflare.com网站上注册。它们是一种基于云的 DNS服务,可以免费管理您的DNS,但也为大型项目提供付费解决方案。他们有一个完整的集成API解决方案,用于以编程方式修改DNS区域设置。我所要做的只是将我的名字服务器指向GoDaddy使用他们的名字服务器,然后我就可以使用他们免费的基于云的DNS服务。

现在使用PHP,我可以通过他们的服务以编程方式创建DNS记录,包括A,CNAME以及介于两者之间的所有内容。非常简单直观的服务解决了我们遇到的一个大问题。安装过程非常简单,最初只需几分钟即可完成传播。还有其他基于云的DNS服务,但CloudFlare可让您免费注册,无需提问。在承诺之前,我能够使用他们的API。它们的价格非常合理,如果您需要更高的性能,亲计划的成本仅为每月20美元。

答案 1 :(得分:2)

您可以拥有自己的DNS服务器(例如:unbound),然后您可以根据需要让程序更改区域文件并重新加载服务。

Here's an example of changing a zone file using the unbound API。虽然它是用Python编写的并且修改了resolv.conf,但是通过一些更改,您可以使它与实际的DNS服务器区域文件一起使用。

也许这不是最好的解决方案,但它很容易。

答案 2 :(得分:1)

dns-zonefile https://github.com/elgs/dns-zonefile正是您要找的。这是一个javascript库/实用程序,它将dns区域文件从/转换为JSON格式。