#!/usr/local/bin/perl use strict; use warnings; use Data::Dumper; use constant DIR_FILE_LIST => '/usr/local/www/shapers/'; my $action = (defined($ARGV[0]) and $ARGV[0] =~ m/^(add|del)$/) ? shift(@ARGV) : die "[USE]: iplistcfg \n"; my $ip = (defined($ARGV[0]) and $ARGV[0] =~ m/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) ? shift(@ARGV) : die "[USE]: iplistcfg \n"; my $file_list = (defined($ARGV[0]) and $ARGV[0] =~ m/^[[A-z0-9_]+\.txt$/) ? shift(@ARGV) : die "[USE]: iplistcfg \n"; my $list; open(FILE, "<", DIR_FILE_LIST . $file_list) or die "$! : ${\DIR_FILE_LIST}$file_list"; while() { $list .= $_; } close(FILE); if($action eq 'add' and $list !~ m/^$ip$/m) { $list .= "$ip\n"; } if($action eq 'del' and $list =~ m/^$ip\n$/m) { $list =~ s/^$ip\n?//m; } open(FILE, ">", DIR_FILE_LIST . $file_list) or die "$! : ${\DIR_FILE_LIST}$file_list"; print FILE $list; close(FILE); system('sudo /etc/rc.update_urltables now forceupdate');