#!/usr/bin/perl # # makezones # # makes zone files for a cidr block of ips # use strict; use Net::Netmask; if (scalar(@ARGV) < 1) { Usage(); exit(0); } # end if not enough arguments my $user_netblock = $ARGV[0]; my $netblock = new Net::Netmask($user_netblock); if ($netblock->{'ERROR'} ne "") { printf("$user_netblock doesn't look like a netblock: ".$netblock->{'ERROR'}."\n\n"); exit(1); } # end if bad netblock my @allip = $netblock->enumerate(24); for my $newip (@allip) { my @ip = split(/\./, $newip); printf("zone \"%s.%s.%s.in-addr.arpa\" {\n", $ip[2], $ip[1], $ip[0]); printf(" type forward;\n"); printf(" forwarders { 205.166.61.130; };\n"); printf("};\n"); } # end for each ip block sub Usage { printf("== makezones ==\n"); printf(" makezones \n"); printf(" makes zones using basic netmask\n"); printf("\n"); } # end Usage