2012-06-13 64 views
4

我正在将我的域名转换为新的DNS服务。 将新设置与现有DNS设置进行比较的最佳工具是什么?在两个不同域名服务器上比较DNS

我试图使用带和不带@nameserver的dig来确保DNS记录匹配旧的和新的提供者。

到目前为止没有成功。

任何想法?

+0

“到目前为止没有成功”是什么意思? “dig”就像你要为这份工作找到的工具一样有用。什么没有工作? – Celada

回答

13

我回答这个老问题,我面临着这个问题,我解决了它这种方式:

对于单个域:

diff <(sort -u <(dig +nottlid +noall +answer @ns.myfirstserver.com example.com ANY)) <(sort -u <(dig +nottlid +noall +answer @ns.mysecondserver.com example.com ANY)) 

多个域或子域:

  • 创建一个一行一行的文本文件(例如:alldomains.txt)

命令行:

diff <(sort -u <(for host in $(cat alldomains.txt); do dig +nottlid +noall +answer @ns.myfirstserver.com $host ANY; done)) <(sort -u <(for host in $(cat alldomains.txt); do dig +nottlid +noall +answer @ns.mysecondserver.com $host ANY; done)) 

评论:

  • DIFF:按行比较文件行
  • 排序:文本文件的排序行
  • -u:确保只有独特的路线
  • :DNS查找工具
  • + nottlid:打印记录
  • + noall时不显示TTL:清除所有显示标志
  • 答案:显示答复的权威部分。
  • @ ns.server.com:名称服务器的名称或IP地址来查询
  • 任何:表明哪种类型的查询要求(ANY,A,MX,SIG等)

您可以通过在末尾添加> myresult.txt来重定向到文件。

我希望这可以帮助某人。

+1

如果其中一个域名服务器允许IP传输给你,你可以将所有的主机(不包括那些只有其他名称服务器知道的主机)与:'diff <(sort + ns.myfirstserver。com)example.com))<(sort -u <(用于$(dig + nottlid + noall + answer -t AXFR @ ns.myfirstserver.com example.com | cut -f 1 | sort -u)中的主机); do dig + nottlid + noall + answer @ ns.mysecondserver.com $ host ANY; done))' – textshell

+0

如果区域包含其他名称服务器的委托,我还需要在dig命令中添加'+ authority'。 – textshell

+0

梦幻般的答案,谢谢! – npad

相关问题