NAME
    Regexp::Network - some useful routines for the DHCP bits and pieces.

SYNOPSIS
       use Regexp::Network;

       print "$ip is valid!" if $ip =~ $ip_RE;

       my (@macs) = ($data =~ /\b($mac_RE)\b/g);
       @macs = map { cleanether($_) } @macs;

DESCRIPTION
    Provide useful routines and constants and stuff for analysing
    assorted network log files and data.

EXPORTATIONS
    As an Exporter, it provides (optionally):

    $ip_RE
        Matches an IP address. Mostly useful for extracting IPs from log
        files or validating them. e.g.

                print "IP is valid!" if ($ip =~ /$ip_RE/);

        It has weaknesses, but it will at least limit things to 0-255
        rather than allowing 354.543.551.79485 as a valid IP. Has
        problems with things like 0123.01.5.6 (leading zeroes).

    $mac_RE
        Matches a MAC address. Either ':' or '-' separated. Either with
        leading zeroes, or without. Case insensitive. Once pulled, you
        can use cleanether on it to turn it into the canonical form.

                print "MAC is valid!" if ($mac =~ /$mac_RE/);

    cleanether()
        Cleans ethernet hardware addresses (MACs) into the preferred
        canonical form. This routine follows design by contract
        principles and dies if the MAC address is not parsable by
        $mac_RE, hence only pass suitable stuff in.

            $clean_MAC = cleanether($dirty_MAC);

AUTHOR
    Iain Truskett <spoon@cpan.org> <http://eh.org/~koschei/>

    Please report any bugs, or post any suggestions, to either the
    mailing list at <cpan@dellah.anu.edu.au> (email
    <cpan-subscribe@dellah.anu.edu.au> to subscribe) or directly to the
    author at <spoon@cpan.org>

PLANS
    Impove ip_RE for leading noughts, and such like.

COPYRIGHT
    Copyright (c) 2002 Iain Truskett. All rights reserved. This program
    is free software; you can redistribute it and/or modify it under the
    same terms as Perl itself.

        $Id: Network.pm,v 1.3 2002/04/05 07:56:05 koschei Exp $

ACKNOWLEDGEMENTS
    None really. Just happened to need the facilities of this module.

SEE ALSO
    Memoize

