Config::Hosts

Section: User Contributed Perl Documentation (3)
Updated: 2013-02-01
Page Index
 

NAME

Config::Hosts - Interface to /etc/hosts file  

VERSION

Version 0.01  

SYNOPSIS

Config::Hosts - Interface to /etc/hosts file. A tool that manages the hosts list on a machine, is able to query/insert/delete/update the entries by IP or by a hostname, and also maintains the original comments and some sanity checks on IP and hostname values.

    use Config::Hosts;

    my $hosts = Config::Hosts->new();
        $hosts->read_hosts(); # reads default /etc/hosts
        $hosts->query_host($host_or_ip);
        $hosts->insert_host(ip => $ip, hosts => [qw(host1 host2)]);
        $hosts->update_host($ip, hosts=> [qw(host1 host3)]);
        $hosts->delete_host('host3');
        $hosts->write_hosts("/tmp/hosts");

 

EXPORT

The interface is entirely object-oriented. The following methods have been defined:  

SUBROUTINES/METHODS

 

new ($;%)

The constructor. Accepts optional hash with one key only: file - the name of the file as alternative to default /etc/hosts.

Returns the newly blessed object.  

is_valid_ip ($)

internal utility function to check whether the IP given is a valid IPv4 or IPv6 address. Returns 1 or 0, naturally.  

is_valid_host($)

Internal utility to determine whether the host name is a valid hostname as required by /etc/hosts manual.  

read_hosts($;$)

Read the host file into a data structure to later be used by the other methods. Optional argument may be the file to read hosts table from.  

determine_ip_or_host ($$)

Check whether the given argument is an IP, a HOST or neither. Returns 1, -1 or 0 correspondingly.  

query_host ($$)

Queries the read hosts table to find specified argument that may be IP address or host name.

Returns hash containing the relevant entry if found or undef if not.  

insert_host ($%)

Inserts a host. Both IP and hostnames must be specified as a hash. Hostname may be a single scalar or arrayref of hostnames.  

delete_host ($$)

Deletes an entry in hosts table. The entry is determined either by IP or by hostname, all entries related to this host or IP are wiped out.  

update_host ($$)

Updates an entry in hosts table. Arguments should be of the following format: $self->update_host($ip_or_host, ip => $new_ip, hosts => [ @new_hosts ]);

New hosts' argument may be a single scalar instead of arrayref.  

write_hosts($;$)

Writes the hosts table either to the default or to a specified (via parameter) file.  

AUTHOR

Roman M. Parparov, "<roman at parparov.com>"  

BUGS

Please report any bugs or feature requests to "bug-config-hosts at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Config-Hosts>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

CAVEAT: the changes in host table are not committed unless you explicitly write_hosts() them.  

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Config::Hosts

You can also look for information at:

RT: CPAN's request tracker

<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Config-Hosts>

AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/Config-Hosts>

CPAN Ratings

<http://cpanratings.perl.org/d/Config-Hosts>

Search CPAN

<http://search.cpan.org/dist/Config-Hosts/>

 

ACKNOWLEDGEMENTS

Thanks to Vicente Gavara "<vicente.gavara at tcomm.es>" for providing a fix for editing/deleting routines.  

LICENSE AND COPYRIGHT

Copyright 2011 Roman M. Parparov.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.


 

Index

NAME
VERSION
SYNOPSIS
EXPORT
SUBROUTINES/METHODS
new ($;%)
is_valid_ip ($)
is_valid_host($)
read_hosts($;$)
determine_ip_or_host ($$)
query_host ($$)
insert_host ($%)
delete_host ($$)
update_host ($$)
write_hosts($;$)
AUTHOR
BUGS
SUPPORT
ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT