⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 create_master.cgi

📁 Unix下基于Web的管理工具
💻 CGI
字号:
#!/usr/local/bin/perl# create_master.cgi# Create a new master zonerequire './bind8-lib.pl';&ReadParse();&error_setup($text{'mcreate_err'});%access = &get_module_acl();$access{'master'} || &error($text{'mcreate_ecannot'});$access{'ro'} && &error($text{'master_ero'});$conf = &get_config();# validate inputsif ($in{'rev'}) {	$in{'zone'} =~ /^[0-9\.]+$/ ||		&error(&text('mcreate_enet', $in{'zone'}));	$in{'zone'} = &ip_to_arpa($in{'zone'});	}else {	$in{'zone'} =~ /^[A-z0-9\-\.]+$/ ||		&error(&text('mcreate_edom', $in{'zone'}));	$in{'zone'} !~ /^[0-9\.]+$/ ||		&error(&text('mcreate_edom2', $in{'zone'}));	}$in{'zone'} =~ s/\.$//g;$in{'master'} =~ /^[A-z0-9\-\.]+$/ ||	&error(&text('master_emaster', $in{'master'}));if ($in{'master'} !~ /\.$/) { $in{'master'} .= "."; }$in{'email'} =~ /^\S+$/ ||	&error(&text('master_eemail', $in{'email'}));if ($in{'email'} =~ s/\@/\./) { $in{'email'} .= "."; }$in{'refresh'} =~ /^\S+$/ ||        &error(&text('master_erefresh', $in{'refresh'}));$in{'retry'} =~ /^\S+$/ ||        &error(&text('master_eretry', $in{'retry'}));$in{'expiry'} =~ /^\S+$/ ||        &error(&text('master_eexpiry', $in{'expiry'}));$in{'minimum'} =~ /^\S+$/ ||        &error(&text('master_eminimum', $in{'minimum'}));$base = $access{'dir'} eq '/' ? &base_directory($conf) : $access{'dir'};if (!$in{'file_def'}) {	$in{'file'} =~ /^\S+$/ ||		&error(&text('mcreate_efile', $in{'file'}));	if ($in{'file'} !~ /^\//) {		$in{'file'} = $base."/".$in{'file'};		}	&allowed_zone_file(\%access, $in{'file'}) ||		&error(&text('mcreate_efile2', $in{'file'}));	}elsif ($in{'rev'}) {	# create filename for reverse zone	$in{'file'} = $base."/".&arpa_to_ip($in{'zone'}).".rev";	}else {	# create filename for forward zone	$in{'file'} = $base."/".$in{'zone'}.".hosts";	}open(ZONE, "> $in{'file'}") || &error(&text('mcreate_efile3', $in{'file'}, $!));close(ZONE);# create the SOA and NS recordsif ($config{'soa_style'} == 1) {        $serial = &date_serial()."00";        }else {        $serial = time();        }$vals = "$in{'master'} $in{'email'} (\n".        "\t\t\t$serial\n".        "\t\t\t$in{'refresh'}\n".        "\t\t\t$in{'retry'}\n".        "\t\t\t$in{'expiry'}\n".        "\t\t\t$in{'minimum'} )";&create_record($in{'file'}, "$in{'zone'}.", undef, "IN", "SOA", $vals);&create_record($in{'file'}, "$in{'zone'}.", undef, "IN", "NS", $in{'master'});# create the zone directiveopen(CONF, ">> $config{'named_conf'}");print CONF "zone \"$in{'zone'}\" {\n";print CONF "\ttype master;\n";print CONF "\tfile \"$in{'file'}\";\n";print CONF "\t};\n";print CONF "\n";close(CONF);# Add the new zone to the access listif ($access{'zones'} ne '*') {	$access{'zones'} .= " ".$in{'zone'};	&save_module_acl(\%access);	}&redirect("");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -