Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Parsing Zonefiles

by fokat (Deacon)
on Aug 05, 2004 at 17:36 UTC ( #380335=note: print w/ replies, xml ) Need Help??


in reply to Parsing Zonefiles

Hi there:

I don't know if you did look at it, but Net::DNS::ZoneFile will parse most BIND zone files, returning a list of Net::DNS::RR objects as the result.

You can then act on the objects themselves, remove them from the list or add new ones. Finally, you can simply print them to a new file. The pseudo-code would look like:

use Net::DNS; use Net::DNS::ZoneFile; my $rrs = Net::DNS::ZoneFile->read("/var/named/named.local", { # You might need to set the # $ORIGIN explicitly here if # your zone file does not make # this explicit. See perldoc } ); # Print the RRs that were fetched print $_->string, "\n" for @$rrs; # Add a sample RR push @$rrs, new Net::DNS::RR "3 7200 IN PTR always-listed.your.domain. +"; # Update the serial :) # You can also "replace" the current serial, with the current date, # as commonly recommended. However, if you're looking into this, you # probably have better change control on your zones already. foreach (@$rrs) { next unless $_->type eq 'SOA' and $_->class eq 'IN'; $_->serial($_->serial + 1); } # Print the resulting RR set (this could be your new zone by printing +to # a file) print $_->string, "\n" for @$rrs;

Feel free to ask if you need further help with this code...

Best regards

-lem, but some call me fokat


Comment on Re: Parsing Zonefiles
Download Code
Re^2: Parsing Zonefiles
by Elijah_A (Novice) on Aug 06, 2004 at 02:43 UTC
    Ah!! now I remember why I used a temporary file for the main zone file, It's for the DNS::Zone::File; ... didn't work out though.
    Hmmm... Net::DNS::ZoneFile might just be what I'm looking for... I tried executing it till the print part, but didn't get any results.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://380335]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2015-07-07 02:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (86 votes), past polls