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

📄 records-lib.pl

📁 Unix下基于Web的管理工具
💻 PL
字号:
# date_serial()# Returns a string like YYYYMMDDsub date_serial{local $now = time();local @tm = localtime($now);return sprintf "%4.4d%2.2d%2.2d", $tm[5]+1900, $tm[4]+1, $tm[3];}# get_zone_defaults(&array)sub get_zone_defaults{if (!&read_file("$module_config_directory/zonedef", $_[0])) {	$_[0]->{'refresh'} = 10800; $_[0]->{'retry'} = 3600;	$_[0]->{'expiry'} = 432000; $_[0]->{'minimum'} = 38400;	}}# save_zone_defaults(&array)sub save_zone_defaults{&write_file("$module_config_directory/zonedef", $_[0]);}# allowed_zone_file(&access, file)sub allowed_zone_file{return 0 if ($_[1] =~ /\.\./);return 0 if (-l $_[1] && !&allowed_zone_file($_[0], readlink($_[1])));local $l = length($_[0]->{'dir'});return length($_[1]) > $l && substr($_[1], 0, $l) eq $_[0]->{'dir'};}# sort_records(list)sub sort_records{return @_ if (!@_ || !$config{'records_order'});if ($config{'records_order'} == 1) {	# Sort by name	if ($_[0]->{'type'} eq "PTR") {		return sort ptr_sort_func @_;		}	else {		return sort { $a->{'name'} cmp $b->{'name'} } @_;		}	}else {	# Sort by value	if ($_[0]->{'type'} eq "A") {		return sort ip_sort_func @_;		}	elsif ($_[0]->{'type'} eq "MX") {		return sort { $a->{'values'}->[1] cmp $b->{'values'}->[1] } @_;		}	else {		return sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @_;		}	}}sub ptr_sort_func{$a->{'name'} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);$b->{'name'} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;return	$a4 < $4 ? -1 :	$a4 > $4 ? 1 :	$a3 < $3 ? -1 :	$a3 > $3 ? 1 :	$a2 < $2 ? -1 :	$a2 > $2 ? 1 :	$a1 < $1 ? -1 :	$a1 > $1 ? 1 : 0;}sub ip_sort_func{$a->{'values'}->[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);$b->{'values'}->[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;return	$a1 < $1 ? -1 :	$a1 > $1 ? 1 :	$a2 < $2 ? -1 :	$a2 > $2 ? 1 :	$a3 < $3 ? -1 :	$a3 > $3 ? 1 :	$a4 < $4 ? -1 :	$a4 > $4 ? 1 : 0;}# arpa_to_ip(name)# Converts an address like 4.3.2.1.in-addr.arpa. to 1.2.3.4sub arpa_to_ip{if ($_[0] =~ /^([\d\.]+)\.in-addr\.arpa/i) {	return join('.',reverse(split(/\./, $1)));	}return $_[0];}# ip_to_arpa(address)# Converts an IP address like 1.2.3.4 to 4.3.2.1.in-addr.arpa.sub ip_to_arpa{if ($_[0] =~ /^([\d\.]+)$/) {	return join('.',reverse(split(/\./,$1))).".in-addr.arpa.";	}return $_[0];}# absolute_path(path)# If a path does not start with a /, prepend the base directorysub absolute_path{if ($_[0] =~ /^\//) { return $_[0]; }return &base_directory()."/".$_[0];}

⌨️ 快捷键说明

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