windows-server-2003 – 查询服务器的CNAME的DNS

前端之家收集整理的这篇文章主要介绍了windows-server-2003 – 查询服务器的CNAME的DNS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法查询我们的内部DNS条目,以发现指向特定服务器的所有CNAME条目?

编辑:我们是Windows环境,Server 2003.

您没有指定您的环境是什么,但如果您使用的是Unix,我认为dig和grep的组合应该可行. ns.example.com应该是您的名称服务器的主机名,example.com是您的主机所属的域,HOST是您要查找所有CNAME记录的主机.这实际上是grep命令中的制表符,而不是字面上的< TAB> (您可能需要调整grep字符串).

您的名称服务器也需要配置为允许区域传输,其详细信息将取决于实现.

dig @ns.example.com example.com axfr |grep 'CNAME<tab>HOST$'

或者,如果您使用的是Windows,则可以使用nslookup

C:\> nslookup
> name ns.example.com
> ls -a example.com FILE

这应该将ns.example.com“知道”的域example.com的所有记录输出到FILE.然后,您可以使用您想要在文本文件中排序的任何工具来查找相应的CNAMES.

或者使用这个未经测试(但看起来正确的)perl script

#!/usr/bin/perl

use Net::DNS;

($target,$zone) = @ARGV;

$res = new Net::DNS::Resolver;
foreach $rr ($res->axfr($zone)) {
     print $rr->name."\n" if (($rr->type eq "CNAME") && ($rr->rdatastr eq $target."."));
}

完整性的几点:

>正如@womble所说,CNAME没有相当于PTR的记录.您必须通过对与主机的A记录对应的CNAMES的所有区域信息进行排序来使用一些上下文感知.>这仅适用于您的DNS服务器(如果您有权查看区域信息).没有办法为属于其他区域的主机“跟踪”CNAMES.>正如@BillThor所述,除了CNAMES之外,还有其他方法可以将主机名别名.同样,您需要一些上下文意识.

猜你在找的Windows相关文章