📄 create_slave.cgi
字号:
#!/usr/local/bin/perl# create_slave.cgi# Create a new slave zonerequire './bind8-lib.pl';&ReadParse();&error_setup($in{'type'} ? $text{'screate_err1'} : $text{'screate_err2'});%access = &get_module_acl();$access{'slave'} || &error($in{'type'} ? $text{'screate_ecannot1'} : $text{'screate_ecannot2'});$access{'ro'} && &error($text{'master_ero'});# validate inputsif ($in{'rev'}) { $in{'zone'} =~ /^[0-9\.]+$/ || &error(&text('screate_enet', $in{'zone'})); $in{'zone'} = &ip_to_arpa($in{'zone'}); }else { $in{'zone'} =~ /^[A-z0-9\-\.]+$/ || &error(&text('screate_edom', $in{'zone'})); }$in{'zone'} =~ s/\.$//g;@masters = split(/\s+/, $in{'masters'});foreach $m (@masters) { &check_ipaddress($m) || &error(&text('screate_emaster', $m)); }if (!@masters) { &error($text{'screate_enone'}); }if (!$in{'file_def'}) { $in{'file'} =~ /^\S+$/ || &error(&text('screate_efile', $in{'file'})); $base = $access{'dir'} eq '/' ? &base_directory($conf) : $access{'dir'}; if ($in{'file'} !~ /^\//) { $file = $base."/".$in{'file'}; } else { $file = $in{'file'}; } &allowed_zone_file(\%access, $file) || &error(&text('screate_efile2', $file)); open(ZONE, "> $file") || &error(&text('screate_efile3', $file, $!)); close(ZONE); }# Create zone directiveopen(CONF, ">> $config{'named_conf'}");print CONF "zone \"$in{'zone'}\" {\n";print CONF "\ttype ",$in{'type'} ? 'slave' : 'stub',";\n";if ($file) { print CONF "\tfile \"$file\";\n"; }print CONF "\tmasters {\n";foreach $m (@masters) { print CONF "\t\t$m;\n"; }print CONF "\t\t};\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 + -