Dansguardian

 view release on metacpan or  search on metacpan

lib/dansguardian.pm  view on Meta::CPAN

package Dansguardian;
use warnings;
use strict;
use Carp;
use Tie::File;

our $VERSION = '0.05';

=head1 NAME

Dansguardian - Simple module for administer dansguardian's control files.

=head1 SYNOPSIS

  use Dansguardian;

  # Make the objet $dg using the contructor new()
  
  my $dg = Dansguardian->new(dir => '/etc/dansguardian', group_dir => '/etc/dansguardian/lists');

  # Save IP's banned in array
  
  my @banned_ips = $dg->get('bannediplist');
  print "The IP address $_ is banned!!\n" foreach @banned_ips;

  # Add exception web site
  
  my $site = 'mogaal.com';
  $dg->set(file => 'exceptionsitelist', add => $site, comment => "Is not porn site");

  # Remove banned IP
  
  my $ip_free = '192.168.0.2';
  $dg->remove(file => 'bannediplist', line => $ip_free);

  # list sites banned
  
  my @sites_banned = $dg->get('bannedsitelist');
  print "The site $_ is banned!!\n" foreach @sites_banned;

  # list dansguardian's config directory and the current group directory
  
  print "Dansguardian's config directory is " . $dg->group() . " and " . $dg->dir() . " is the current group directory\n";

  # Change group directory;
  
  $dg->group("/etc/dansguardian/chiefs");
  print "Dansguardian's config directory is " . $dg->dir() . " and " . $dg->group() . " is the current group directory\n";


=head1 DESCRIPTION

"DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filte...

Dansguardian Perl module is small module for administer dansguardian's content control files. It let you add, remove and get information from files control across methods.


=head1 METHODS

Dansguardian perl module provides some basic methods for administer control files, with it you can add, remove and get information about IP's blocked, sites denies, IP exception and other information. 

=head2 new (constructor)

  $dg = Dansguardian->new([%attributes])

The constructor will create an object. It accepts a list of key => value pairs:

=over 3

=item dir => 'dansguardian/config/directory'

If you don't set up a config directory for dansguardian the module will set up default value: /etc/dansguardian

=item group_dir => 'path/to/group_dir/directory'

Same that dir hash, and the default value is: /etc/dansguardian/lists

=back

=cut

sub new {
	my ($self, %args) = @_;
	my $object = bless {
		dir => $args{dir},
		group_dir => $args{group_dir}
		}, $self;
	return $object;
}


=pod

=head2 $dg->group([$group_dir]);

If group method don't have attribute: the function return array with dansguardian current group directory. Is possible change the group directory setting up $group_dir variable.

=cut

sub group {
	my $self = shift;
	$self->{group_dir} = shift if @_;
	return $self->{group_dir};
}

=pod


=head2 $dg->dir([$config_dir]);

If dir method don't have attribute: the function return array with dansguardian current config directory. Is possible change the group directory setting up $group_dir variable.

=cut

sub dir {
	my $self = shift;
	$self->{dir} = shift if @_;
	return $self->{dir};
}



( run in 2.272 seconds using v1.01-cache-2.11-cpan-5735350b133 )