The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Regexp::Common::net -- provide regexes for IPv4 addresses.

SYNOPSIS

    use Regexp::Common qw /net/;

    while (<>) {
        /$RE{net}{IPv4}/       and print "Dotted decimal IP address";
        /$RE{net}{IPv4}{hex}/  and print "Dotted hexadecimal IP address";
        /$RE{net}{IPv4}{oct}{-sep => ':'}/ and
                               print "Colon separated octal IP address";
        /$RE{net}{IPv4}{bin}/  and print "Dotted binary IP address";
        /$RE{net}{MAC}/        and print "MAC address";
        /$RE{net}{MAC}{oct}{-sep => " "}/ and
                               print "Space separated octal MAC address";
    }

DESCRIPTION

Please consult the manual of Regexp::Common for a general description of the works of this interface.

Do not use this module directly, but load it via Regexp::Common.

This modules gives you regular expressions for various style IPv4 and MAC (or ethernet) addresses.

$RE{net}{IPv4}

Returns a pattern that matches a valid IP address in "dotted decimal"

For this pattern and the next four, under -keep (See Regexp::Common):

$1

captures the entire match

$2

captures the first component of the address

$3

captures the second component of the address

$4

captures the third component of the address

$5

captures the final component of the address

$RE{net}{IPv4}{dec}{-sep}

Returns a pattern that matches a valid IP address in "dotted decimal"

If -sep=P is specified the pattern P is used as the separator. By default P is qr/[.]/.

$RE{net}{IPv4}{hex}{-sep}

Returns a pattern that matches a valid IP address in "dotted hexadecimal", with the letters A to F capitalized.

If -sep=P is specified the pattern P is used as the separator. By default P is qr/[.]/. -sep="" and -sep=" " are useful alternatives.

$RE{net}{IPv4}{oct}{-sep}

Returns a pattern that matches a valid IP address in "dotted octal"

If -sep=P is specified the pattern P is used as the separator. By default P is qr/[.]/.

$RE{net}{IPv4}{bin}{-sep}

Returns a pattern that matches a valid IP address in "dotted binary"

If -sep=P is specified the pattern P is used as the separator. By default P is qr/[.]/.

$RE{net}{MAC}

Returns a pattern that matches a valid MAC or ethernet address as colon separated hexadecimals.

For this pattern, and the next four, under -keep (See Regexp::Common):

$1

captures the entire match

$2

captures the first component of the address

$3

captures the second component of the address

$4

captures the third component of the address

$5

captures the fourth component of the address

$6

captures the fifth component of the address

$7

captures the sixth and final component of the address

This pattern, and the next four, have a subs method as well, which will transform a matching MAC address into so called canonical format. Canonical format means that every component of the address will be exactly two hexadecimals (with a leading zero if necessary), and the components will be separated by a colon.

The subs method will not work for binary MAC addresses if the Perl version predates 5.6.0.

$RE{net}{MAC}{dec}{-sep}

Returns a pattern that matches a valid MAC address as colon separated decimals.

If -sep=P is specified the pattern P is used as the separator. By default P is qr/:/.

$RE{net}{MAC}{hex}{-sep}

Returns a pattern that matches a valid MAC address as colon separated hexadecimals, with the letters a to f in lower case.

If -sep=P is specified the pattern P is used as the separator. By default P is qr/:/.

$RE{net}{MAC}{oct}{-sep}

Returns a pattern that matches a valid MAC address as colon separated octals.

If -sep=P is specified the pattern P is used as the separator. By default P is qr/:/.

$RE{net}{MAC}{bin}{-sep}

Returns a pattern that matches a valid MAC address as colon separated binary numbers.

If -sep=P is specified the pattern P is used as the separator. By default P is qr/:/.

$RE{net}{domain}

Returns a pattern to match domains (and hosts) as defined in RFC 1035. Under I{-keep} only the entire domain name is returned.

REFERENCES

RFC 1035

Mockapetris, P.: DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION. November 1987.

SEE ALSO

Regexp::Common for a general description of how to use this interface.

HISTORY

 $Log: net.pm,v $
 Revision 1.8  2003/01/10 11:03:28  abigail
 Added complete CVS history.

 Revision 1.7  2002/08/05 22:02:06  abigail
 Typo fix.

 Revision 1.6  2002/08/05 20:36:10  abigail
 Added $RE{net}{domain}

 Revision 1.5  2002/08/05 12:16:59  abigail
 Fixed 'Regex::' and 'Rexexp::' typos to 'Regexp::' (Found my Mike Castle).

 Revision 1.4  2002/08/01 10:00:01  abigail
 Got rid of the split // in the "subs" method of MAC addresses with
 configurable seperator, as this may lead to incorrect results (for
 instance, if the separator is the empty string).

 Revision 1.3  2002/07/31 23:27:57  abigail
 Added regexes for MAC addresses.

 Revision 1.2  2002/07/28 22:57:59  abigail
 Tests to pinpoint a bug in Regexp::Common's _decache.

 Revision 1.1  2002/07/25 23:53:38  abigail
 Factored out of Regexp::Common.

AUTHOR

Damian Conway damian@conway.org.

MAINTAINANCE

This package is maintained by Abigail (regexp-common@abigail.nl).

BUGS AND IRRITATIONS

Bound to be plenty.

For a start, there are many common regexes missing. Send them in to regexp-common@abigail.nl.

COPYRIGHT

     Copyright (c) 2001 - 2002, Damian Conway. All Rights Reserved.
       This module is free software. It may be used, redistributed
      and/or modified under the terms of the Perl Artistic License
            (see http://www.perl.com/perl/misc/Artistic.html)