加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2021-01-12 16:01:29 所属栏目:Windows 来源:网络整理
导读:有没有办法查询我们的内部DNS条目,以发现指向特定服务器的所有CNAME条目? 编辑:我们是Windows环境,Server 2003. 您没有指定您的环境是什么,但如果您使用的是Unix,我认为dig和grep的组合应该可行. ns.example.com应该是您的名称服务器的主机名,example.com

有没有办法查询我们的内部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之外,还有其他方法可以将主机名别名.同样,您需要一些上下文意识.

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!