亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? arpbind-lib.pl

?? 使用PERL寫關于CGI界面程序
?? PL
?? 第 1 頁 / 共 2 頁
字號:
# firewall-lib.pl# Functions for parsing iptables-save format files# - help pagesrequire '../web-lib.pl';&init_config();require '../ui-lib.pl';if ($config{'save_file'}) {	# Force use of a different save file, and webmin's functions	$iptables_save_file = $config{'save_file'};	}else {	if (-r "$module_root_directory/$gconfig{'os_type'}-lib.pl") {		# Use the operating system's save file and functions		do "$gconfig{'os_type'}-lib.pl";		}	if (!$iptables_save_file) {		# Use webmin's own save file		$iptables_save_file = "$module_config_directory/iptables.save";		}	}%access = &get_module_acl();@known_tables = ( "filter", "mangle", "nat" );@known_args =   ('-p', '-m', '-s', '-d', '-i', '-o', '-f',		 '--dport', '--sport', '--tcp-flags', '--tcp-option',		 '--icmp-type', '--mac-source', '--limit', '--limit-burst',		 '--ports', '--uid-owner', '--gid-owner',		 '--pid-owner', '--sid-owner', '--state', '--tos', '-j',		 '--to-ports', '--to-destination', '--to-source',		 '--reject-with', '--dports', '--sports');# get_iptables_save([file])# Parse the iptables save file into a list of tables # format seems to be:#  *table#  :chain defaultpolicy#  -A chain options#  -N chain#  COMMITsub get_iptables_save{local (@rv, $table, %got);local $lnum = 0;open(FILE, $_[0] || ($config{'direct'} ? "iptables-save |"				       : $iptables_save_file));local $cmt;while(<FILE>) {        local $read_comment;	s/\r|\n//g;	if (s/#\s*(.*)$//) {		$cmt .= " " if ($cmt);		$cmt .= $1;		$read_comment=1;		}	if (/^\*(\S+)/) {		# Start of a new table		$got{$1}++;		push(@rv, $table = { 'line' => $lnum,				     'eline' => $lnum,				     'name' => $1,				     'rules' => [ ],				     'defaults' => { } });		}	elsif (/^:(\S+)\s+(\S+)/) {		# Default policy definition		$table->{'defaults'}->{$1} = $2;		}	elsif (/^(\[[^\]]*\]\s+)?-N\s+(\S+)(.*)/) {		# New chain definition		$table->{'defaults'}->{$2} = '-';		}	elsif (/^(\[[^\]]*\]\s+)?-A\s+(\S+)(.*)/) {		# Rule definition		local $rule = { 'line' => $lnum,				'eline' => $lnum,				'index' => scalar(@{$table->{'rules'}}),				'cmt' => $cmt,				'chain' => $2,				'args' => $3 };		push(@{$table->{'rules'}}, $rule);		# Parse arguments		foreach $a (@known_args) {			local @vl;			while($rule->{'args'} =~ s/\s+(!?)\s*($a)\s+(!?)\s*(([^ \-!]\S*(\s+|$))+)/ / || $rule->{'args'} =~ s/\s+(!?)\s*($a)()(\s+|$)/ /) {				push(@vl, [ $1 || $3, split(/\s+/, $4) ]);				}			local ($aa = $a); $aa =~ s/^-+//;			if ($a eq '-m') {				$rule->{$aa} = \@vl if (@vl);				}			else {				$rule->{$aa} = $vl[0];				}			}		}	elsif (/^COMMIT/) {		# Marks end of a table		$table->{'eline'} = $lnum;		}	elsif (/\S/) {		&error(&text('eiptables', "<tt>$_</tt>"));		}	$lnum++;	if (! defined($read_comment)) { $cmt=undef; }	}close(FILE);@rv = sort { $a->{'name'} cmp $b->{'name'} } @rv;local $i;map { $_->{'index'} = $i++ } @rv;return @rv;}# save_table(&table)# Updates an existing IPtable in the save filesub save_table{local $lref;if ($config{'direct'}) {	# Read in the current iptables-save output	$lref = &read_file_lines("iptables-save |");	}else {	# Updating the save file	$lref = &read_file_lines($iptables_save_file);	}local @lines = ( "*$_[0]->{'name'}" );local ($d, $r);foreach $d (keys %{$_[0]->{'defaults'}}) {	push(@lines, ":$d $_[0]->{'defaults'}->{$d} [0:0]");	}foreach $r (@{$_[0]->{'rules'}}) {	local $line;	$line = "# $r->{'cmt'}\n" if ($r->{'cmt'});	$line .= "-A $r->{'chain'}";	foreach $a (@known_args) {		local ($aa = $a); $aa =~ s/^-+//;		if ($r->{$aa}) {			local @al = ref($r->{$aa}->[0]) ?					@{$r->{$aa}} : ( $r->{$aa} );			foreach $ag (@al) {				local $n = shift(@$ag);				$line .= " ".join(" ", $n ? ( $n ) : (),						       $a, @$ag);				}			}		}	$line .= " $r->{'args'}" if ($r->{'args'} =~ /\S/);	push(@lines, $line);	}push(@lines, "COMMIT");if (defined($_[0]->{'line'})) {	# Update in file	splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1,	       @lines);	}else {	# Append new table to file	push(@$lref, "# Generated by webmin", @lines, "# Completed");	}if ($config{'direct'}) {	# Pass new lines to iptables-restore	open(SAVE, "| iptables-restore");	print SAVE map { $_."\n" } @$lref;	close(SAVE);	}else {	# Just save the file	&flush_file_lines();	}}# describe_rule(&rule)sub describe_rule{local (@c, $d);foreach $d ('p', 's', 'd', 'i', 'o', 'f', 'dport',	    'sport', 'tcp-flags', 'tcp-option',	    'icmp-type', 'mac-source', 'limit', 'limit-burst',	    'ports', 'uid-owner', 'gid-owner',	    'pid-owner', 'sid-owner', 'state', 'tos',	    'dports', 'sports') {	if ($_[0]->{$d}) {		local ($n, @v) = @{$_[0]->{$d}};		@v = map { uc($_) } @v if ($d eq 'p');		local $txt = &text("desc_$d$n", map { "<b>$_</b>" } @v);		push(@c, $txt) if ($txt);		}	}local $rv;if (@c) {	$rv = &text('desc_conds', join(" $text{'desc_and'} ", @c));	}else {	$rv = $text{'desc_always'};	}return $rv;}# create_firewall_init()# Do whatever is needed to have the firewall started at boot timesub create_firewall_init{if (defined(&enable_at_boot)) {	# Use distro's function	&enable_at_boot();	}else {	# May need to create init script	&create_webmin_init();	}}# create_webmin_init()# Create (if necessary) the Webmin iptables init scriptsub create_webmin_init{local $res = &has_command("iptables-restore");local $ipt = &has_command("iptables");local $start = "$res <$iptables_save_file";local $stop = "$ipt -t filter -F\n".	      "$ipt -t nat -F\n".	      "$ipt -t mangle -F\n".	      "$ipt -t filter -P INPUT ACCEPT\n".	      "$ipt -t filter -P OUTPUT ACCEPT\n".	      "$ipt -t filter -P FORWARD ACCEPT\n".	      "$ipt -t nat -P PREROUTING ACCEPT\n".	      "$ipt -t nat -P POSTROUTING ACCEPT\n".	      "$ipt -t nat -P OUTPUT ACCEPT\n".	      "$ipt -t mangle -P PREROUTING ACCEPT\n".	      "$ipt -t mangle -P OUTPUT ACCEPT";&foreign_require("init", "init-lib.pl");&init::enable_at_boot("webmin-iptables", "Load IPtables save file",		      $start, $stop);}# interface_choice(name, value)sub interface_choice{local @ifaces;if (&foreign_check("net")) {	&foreign_require("net", "net-lib.pl");	return &net::interface_choice($_[0], $_[1]);	}else {	return "<input name=$_[0] size=6 value='$_[1]'>";	}}sub check_previous{	my (@p,$max,$n)=@_;	for ($i=0;$i<$max;$i++)	{		if ($n eq $p[$i]){return 1}	}	return -1;} sub by_string_for_iptables{	my @p=("PREROUTING","INPUT","FORWARD","OUTPUT","POSTROUTING");	for ($i=0;$i<@p;$i++)	{		if ($a eq $p[$i]){			if (&check_previous(@p,$i,$b)){return -1;}			else{ return 1;}}		if ($b eq $p[$i]){			if (&check_previous(@p,$i,$b)){return 1;}			else{ return -1;}}	}	return $a cmp $b;}sub missing_firewall_commands{local $c;foreach $c ("iptables", "iptables-restore", "iptables-save") {	return $c if (!&has_command($c));	}return undef;}# iptables_restore()# Activates the current firewall rules, and returns any errorsub iptables_restore{local $out = &backquote_logged("cd / ; iptables-restore <$iptables_save_file 2>&1");return $? ? "<pre>$out</pre>" : undef;}# iptables_save()# Saves the active firewall rules, and returns any errorsub iptables_save{local $out = &backquote_logged("iptables-save >$iptables_save_file 2>&1");return $? ? "<pre>$out</pre>" : undef;}# can_edit_table(name)sub can_edit_table{return $access{$_[0]};}# can_jump(jump|&rule)sub can_jump{return 1 if (!$access{'jumps'});if (!defined(%can_jumps_cache)) {	%can_jumps_cache = map { lc($_), 1 } split(/\s+/, $access{'jumps'});	}local $j = ref($_[0]) ? $_[0]->{'j'}->[1] : $_[0];return 1 if (!$j);	# always allow 'do nothing'return $can_jumps_cache{lc($j)};}# run_before_command()# Runs the before-saving command, if anysub run_before_command{if ($config{'before_cmd'}) {	&system_logged("($config{'before_cmd'}) </dev/null >/dev/null 2>&1");	}}# run_after_command()# Runs the after-saving command, if anysub run_after_command{if ($config{'after_cmd'}) {	&system_logged("($config{'after_cmd'}) </dev/null >/dev/null 2>&1");	}}# run_before_apply_command()# Runs the before-applying command, if any. If it failes, returns the error# message outputsub run_before_apply_command{if ($config{'before_apply_cmd'}) {	local $out = &backquote_logged("($config{'before_apply_cmd'}) </dev/null 2>&1");	return $out if ($?);	}return undef;}# run_after_apply_command()# Runs the after-applying command, if anysub run_after_apply_command{if ($config{'after_apply_cmd'}) {	&system_logged("($config{'after_apply_cmd'}) </dev/null >/dev/null 2>&1");	}}# apply_configuration()# Calls all the appropriate apply functions and programs, and returns an error# message if anything failssub apply_configuration{local $err = &run_before_apply_command();return $err if ($err);if (defined(&apply_iptables)) {	# Call distro's apply command	$err = &apply_iptables();	}else {	# Manually run iptables-restore	$err = &iptables_restore();	}return $err if ($err);&run_after_apply_command();return undef;}# list_cluster_servers()# Returns a list of servers on which the firewall is managedsub list_cluster_servers{&foreign_require("servers", "servers-lib.pl");local %ids = map { $_, 1 } split(/\s+/, $config{'servers'});return grep { $ids{$_->{'id'}} } &servers::list_servers();}# add_cluster_server(&server)sub add_cluster_server{local @sids = split(/\s+/, $config{'servers'});$config{'servers'} = join(" ", @sids, $_[0]->{'id'});&save_module_config();}# delete_cluster_server(&server)sub delete_cluster_server{local @sids = split(/\s+/, $config{'servers'});$config{'servers'} = join(" ", grep { $_ != $_[0]->{'id'} } @sids);&save_module_config();}# server_name(&server)sub server_name{return $_[0]->{'desc'} ? $_[0]->{'desc'} : $_[0]->{'host'};}# copy_to_cluster([force])# Copy all firewall rules from this server to those in the clustersub copy_to_cluster{return if (!$config{'servers'});		# no servers definedreturn if (!$_[0] && $config{'cluster_mode'});	# only push out when applyinglocal $s;local $ltemp;if ($config{'direct'}) {	# Dump current configuration	$ltemp = &transname();	system("iptables-save >$ltemp 2>/dev/null");	}foreach $s (&list_cluster_servers()) {	&remote_foreign_require($s, "firewall", "firewall-lib.pl");	if ($config{'direct'}) {		# Directly activate on remote server!		local $rtemp = &remote_write($s, $ltemp);		unlink($ltemp);		local $err = &remote_eval($s, "firewall",		  "\$out = `iptables-restore <$rtemp 2>&1`; [ \$out, \$? ]"); 		&remote_eval($s, "firewall", "unlink('$rtemp')");		&error(&text('apply_remote', $s->{'host'}, $err->[0]))			if ($err->[1]);		}	else {		# Can just copy across save file		local $rfile = &remote_eval($s, "firewall",					    "\$iptables_save_file");		&remote_write($s, $iptables_save_file, $rfile);		}	}}# apply_cluster_configuration()# Activate the current configuration on all servers in the clustersub apply_cluster_configuration{return undef if (!$config{'servers'});if ($config{'cluster_mode'}) {	&copy_to_cluster(1);	}local $s;foreach $s (&list_cluster_servers()) {	&remote_foreign_require($s->{'host'}, "firewall", "firewall-lib.pl");	local $err = &remote_foreign_call($s->{'host'}, "firewall", "apply_configuration");	if ($err) {		return &text('apply_remote', $s->{'host'}, $err);		}	}return undef;}sub green_ref{	my ($txt, $href, $width, $explain) = @_;	$width = $width ? $width : 100;	$width += 10;	print "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td width=$width>\n";	print "<table border=0 cellspacing=0 cellpadding=0 style=cursor:hand onclick=\"turnpage('$href')\"><tr>";	print "<td  class=\"green_btn_l\"></td>\n";	print "<td width=\"$width\" align=center class=\"green_btn_m\"><span class=ButtonWhiteText>$txt</span></td>\n";	print "<td  class=\"green_btn_r\"></td>\n";	print "</tr></table></td>\n";	print "<td width=30>&nbsp;</td><td valign=middle class='index_data_12'>$explain</td>\n";	print "</tr></table>\n";}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕第一区第二区| 欧美女孩性生活视频| 国产网站一区二区三区| 国产一区中文字幕| 久久精品网站免费观看| 丁香五精品蜜臀久久久久99网站 | 激情综合网av| 久久精品免费在线观看| 色婷婷av一区二区三区软件| 一区2区3区在线看| 欧美精品自拍偷拍| 国产一区二区三区在线观看免费| 久久精品免费在线观看| 91麻豆精品一区二区三区| 亚洲gay无套男同| 久久久亚洲高清| 91久久精品网| 精品系列免费在线观看| 亚洲欧美另类小说视频| 51精品视频一区二区三区| 极品少妇一区二区三区精品视频| 国产精品美女久久久久久久网站| 欧美亚洲免费在线一区| 国产在线播放一区三区四| 亚洲三级在线观看| 欧美一级xxx| eeuss国产一区二区三区| 首页综合国产亚洲丝袜| 欧美激情一二三区| 8x福利精品第一导航| 成人免费视频网站在线观看| 日韩国产一二三区| 日韩美女精品在线| 日韩欧美成人一区二区| 日本二三区不卡| 国产乱码精品1区2区3区| 亚洲国产精品久久不卡毛片 | 日韩黄色免费电影| 国产女同性恋一区二区| 91精品国产综合久久久久久| 99久久er热在这里只有精品15| 免费不卡在线观看| 亚洲国产视频直播| 国产精品大尺度| 久久影视一区二区| 91精品福利在线一区二区三区 | 久久精品国产亚洲a| 亚洲精品成人精品456| 久久久久久久免费视频了| 欧美特级限制片免费在线观看| 国产精品一二三区| 青青青爽久久午夜综合久久午夜| 亚洲精品美国一| 亚洲特级片在线| 欧美韩国日本综合| 久久久久久久精| 欧美成人性战久久| 91麻豆精品久久久久蜜臀 | 成人少妇影院yyyy| 国产精品88888| 久久99国产精品免费| 日韩电影在线免费观看| 亚洲成人激情综合网| 一区二区三区在线观看网站| 亚洲欧美日韩在线不卡| 一区精品在线播放| 中文字幕在线观看一区| 国产精品国产精品国产专区不片| 国产偷国产偷精品高清尤物| 26uuu久久天堂性欧美| 欧美成人猛片aaaaaaa| 欧美va在线播放| 日韩美女一区二区三区| 日韩视频在线你懂得| 欧美一级久久久久久久大片| 欧美一区二区成人| 精品国产免费人成电影在线观看四季| 欧美日韩精品久久久| 欧美精品tushy高清| 日韩欧美在线网站| 26uuu国产电影一区二区| 久久精品夜夜夜夜久久| 国产日韩在线不卡| 中文字幕制服丝袜一区二区三区| 国产精品久久久久久久午夜片| 亚洲欧洲日产国产综合网| 中文字幕日韩一区| 亚洲大片精品永久免费| 天天操天天色综合| 精品夜夜嗨av一区二区三区| 国产麻豆成人精品| 91啪九色porn原创视频在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 欧美这里有精品| 91精品免费在线| 国产校园另类小说区| 亚洲精品视频免费观看| 丝袜诱惑亚洲看片 | 福利一区二区在线| 色综合咪咪久久| 欧美一区二区三区四区视频| xnxx国产精品| 亚洲乱码精品一二三四区日韩在线| 亚洲一区二区高清| 国内精品国产成人| 色婷婷久久99综合精品jk白丝| 欧美日本高清视频在线观看| 精品国产乱码久久久久久老虎| 欧美国产日韩a欧美在线观看| 夜夜精品视频一区二区| 麻豆国产精品视频| 91丨九色丨黑人外教| 欧美精品日日鲁夜夜添| 久久久影视传媒| 亚洲精品v日韩精品| 男女性色大片免费观看一区二区| 国产不卡在线视频| 欧美日韩精品欧美日韩精品一 | 久久精品国产77777蜜臀| 99久久精品99国产精品| 日韩视频免费直播| 亚洲品质自拍视频网站| 乱中年女人伦av一区二区| 99国产精品国产精品毛片| 日韩一二在线观看| 一区二区三区在线高清| 国产宾馆实践打屁股91| 欧美日本免费一区二区三区| 中文字幕在线观看不卡| 久久99国内精品| 欧美日韩高清一区二区三区| 亚洲国产成人私人影院tom| 日韩av中文字幕一区二区| 91免费小视频| 国产亚洲欧洲一区高清在线观看| 天天操天天综合网| 欧美专区在线观看一区| 国产精品免费av| 国产一区在线精品| 欧美一区二区视频免费观看| 一区二区三区不卡在线观看| www.欧美.com| 国产欧美一区视频| 久久er99精品| 日韩一级片网站| 午夜电影网亚洲视频| av网站免费线看精品| 久久久国产综合精品女国产盗摄| 免费成人av资源网| 91精品国产综合久久香蕉麻豆| 亚洲一区二区三区四区在线观看| 91在线视频播放| 亚洲欧美一区二区在线观看| 国产福利精品一区| 久久久精品影视| 国产麻豆精品theporn| 久久久久久免费| 国产精品一区二区无线| 2020国产精品自拍| 国产精品香蕉一区二区三区| 欧美变态口味重另类| 国内精品国产三级国产a久久| 精品久久久久久久人人人人传媒| 免费高清在线视频一区·| 91麻豆精品国产91久久久资源速度| 亚洲成人av资源| 欧美精品丝袜中出| 麻豆精品精品国产自在97香蕉 | 欧美日韩成人激情| 日日夜夜免费精品视频| 日韩一区二区在线看片| 另类小说色综合网站| 国产亚洲精品aa| av不卡免费在线观看| 一区二区在线观看视频在线观看| 欧美专区日韩专区| 蜜臀久久久久久久| 久久奇米777| 91小视频在线免费看| 一区二区理论电影在线观看| 欧美日韩国产色站一区二区三区| 日韩中文字幕区一区有砖一区 | 91精品久久久久久久91蜜桃| 另类小说图片综合网| 国产亚洲精品超碰| 在线观看国产精品网站| 婷婷丁香激情综合| 久久久精品日韩欧美| 色婷婷综合久久| 免费人成黄页网站在线一区二区| 久久影视一区二区| 99re在线精品| 欧美a级一区二区| 国产精品家庭影院| 欧美精品成人一区二区三区四区| 国内成人免费视频| 一区二区久久久| 欧美成人a在线| 97精品国产97久久久久久久久久久久 | av动漫一区二区|