用于解析Zone文件的UNIX脚本(这是最好的代码吗?)

时间:2010-05-07 00:25:42

标签: shell dns unix zones

支持以下内容:http://mike.murraynet.net/2009/08/23/parsing-the-verisign-zone-file-with-os-x/

unix-master可以查看它,看看它是否是在区域文件中收集唯一域名的最佳方法?

对于.NET域: grep“^ [a-zA-Z0-9 - ] + NS。”net.zone | sed“s / NS。 //”| uniq>> netdomains.txt

对于.COM域名: grep“^ [a-zA-Z0-9 - ] + NS。”com.zone | sed“s / NS。 //”| uniq>> comdomains.txt

对于.EDU域名: grep“^ [a-zA-Z0-9 - ] + NS。”edu.zone | sed“s / NS。 //”| uniq>> edudomains.txt

2 个答案:

答案 0 :(得分:3)

就个人而言,在进一步处理之前,我会使用named-checkzone规范化区域文件的格式:

% named-checkzone -i none -s full -D com. com.zone | \
  perl -ane 'print $F[0]."\n" if $F[3] eq "NS"' | \
  uniq

命令行通常更长,但它避免了可能脆弱的正则表达式匹配的需要。 named-checkconf输出保证在第四个字段中具有资源记录类型(NS),在第一个字段中保证整个域名。

FWIW,named-checkzone还对区域文件输出进行排序,以确保uniq正常工作。

答案 1 :(得分:0)

这是一个较旧的例子。我和我比较,格式仍然相同。

http://www.adspeed.org/2006/04/parsing-verisign-comnet-zone-files.html

;File start: 95720  
; The use of the Data contained in Verisign Inc.' aggregated  
; .com, and .net top-level domain zone files (including the checksum  
; files) is subject to the restrictions described in the access Agreement  
; with Verisign Inc.  

$ORIGIN EDU.  
@ IN    SOA     L3.NSTLD.COM. NSTLD.VERISIGN-GRS.COM. (  
                                  2006040800 ;serial  
                                  1800 ;refresh every 30 min  
                                  900 ;retry every 15 min      
                                  604800 ;expire after a week
                                  86400 ;minimum of a day
                                  )
$TTL 518400
 NS L3.NSTLD.COM.
 NS D3.NSTLD.COM.
 NS A3.NSTLD.COM.
 NS E3.NSTLD.COM.
 NS C3.NSTLD.COM.
 NS G3.NSTLD.COM.
 NS M3.NSTLD.COM.
 NS H3.NSTLD.COM.
L3.NSTLD.COM. A 192.41.162.32
D3.NSTLD.COM. A 192.31.80.32
A3.NSTLD.COM. A 192.5.6.32
E3.NSTLD.COM. A 192.12.94.32
C3.NSTLD.COM. A 192.26.92.32
G3.NSTLD.COM. A 192.42.93.32
M3.NSTLD.COM. A 192.55.83.32
H3.NSTLD.COM. A 192.54.112.32
$TTL 172800
22CF NS DNS1.NAME-SERVICES.COM.
22CF NS DNS2.NAME-SERVICES.COM.
22CF NS DNS3.NAME-SERVICES.COM.
TEST NS NS1.TEST
......

这是一个new.zone文件示例。我添加了底部的一个,这样你就可以看到当nameserver也是.net时它是怎么回事。它将它排除在外。