UNIX-скрипт для разбора файла Zone (это лучший код?) - PullRequest
1 голос
/ 07 мая 2010

НАЙТИ следующее: http://mike.murraynet.net/2009/08/23/parsing-the-verisign-zone-file-with-os-x/

Могут ли мастера Unix взглянуть на это и посмотреть, является ли это наилучшим способом собрать уникальные имена доменов в файле зоны?

Для доменов .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 ]

4 голосов
/ 13 мая 2010

Лично я бы использовал 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.

0 голосов
/ 12 мая 2010

Вот более старый пример. Я сравнил с моим, и формат все тот же.

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, он пропускает.

...