UNIX-скрипт для разбора файла Zone (это лучший код?)
НАЙТИ следующее: 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 ответа
Лично я бы использовал 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
работает правильно.
Вот более старый пример. Я сравнил с моим и формат все тот же.
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, он не учитывается.