.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Net::DHCPv6::DUID::Parser 3pm" .TH Net::DHCPv6::DUID::Parser 3pm "2010-12-06" "perl v5.18.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Net::DHCPv6::DUID::Parser \- Parse DHCPv6 Unique Identifiers .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Net::DHCPv6::DUID::Parser; \& \& my $p = new Net::DHCPv6::DUID::Parser; \& \& # Decode an example DUID \& $p\->decode(\*(Aq000300010004ED9F7622\*(Aq); \& \& # Print the type \& print "TYPE: ".$p\->type(format => \*(Aqtext\*(Aq)."\en"; \& \& ### prints \*(AqTYPE: DUID\-LL\*(Aq \& \& if ($p\->type == 1 || $p\->type == 3) { \& \& # Format this like a MAC address if the link type was Ethernet \& if ($p\->iana_hw_type == 1) { \& print "MAC ADDRESS: ".$p\->local_link_address(format => \*(Aqethernet_mac\*(Aq)."\en"; \& } else { \& print "LOCAL LINK ADDRESS: ".$p\->local_link_address."\en"; \& } \& \& } \& \& ### prints \*(AqMAC ADDRESS: 00\-04\-ed\-9f\-76\-22\*(Aq .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Object oriented interface to parse \s-1RFC3315 \s0 compliant DHCPv6 Unique Identifiers (DUIDs) .PP This module was written for the purpose of splitting the \s-1DUID\s0 into its constituent parts, and shared here for convenience. It does some textual conversions that may save you some time. .SH "USAGE" .IX Header "USAGE" .SS "Methods" .IX Subsection "Methods" \fIConstructor\fR .IX Subsection "Constructor" .IP "\(bu" 4 Net::DHCPv6::DUID::Parser\->new(..) .Sp .Vb 1 \& my $p = new Net::DHCPv6::DUID::Parser (decode => \*(Aqhex\*(Aq); .Ve .Sp The constructor class method accepts two parameters. .Sp The 'decode' parameter tells the parser the format of the \&\s-1DUID\s0 you're intending to parse using the 'decode' object method. Valid attributes are 'hex' and 'bin'. The default value is 'hex'. .Sp The 'warnings' parameter can be set to 0 to disable output to \s-1STDERR. \s0 The default value is 1. .PP \fIObject Methods\fR .IX Subsection "Object Methods" .PP Each method returns undef if it encounters a failure, or if a requested \s-1DUID\s0 component wasn't relevant to the decoded \s-1DUID\s0 type. .PP Warnings are emitted by default, unless turned off in the object constructor. .IP "\(bu" 4 \&\f(CW$p\fR\->decode($duid) .Sp Accepts a single scalar, which should contain the \s-1DUID\s0 in the format indicated by the constructor. .Sp Returns 1 on success. .IP "\(bu" 4 \&\f(CW$p\fR\->type(..) .Sp Applies to: DUID-LL, DUID-LLT and DUID-EN. .Sp Returns the \s-1DUID\s0 type. .Sp Specify \*(L"format => 'text'\*(R" to return the textual representation of the \s-1DUID\s0 type. The default return value is numeric. .IP "\(bu" 4 \&\f(CW$p\fR\->\fItime()\fR .Sp Applies to: DUID-LLT. .Sp Returns time ticks in seconds since midnight 1st January 2000. .IP "\(bu" 4 \&\f(CW$p\fR\->iana_hw_type(..) .Sp Applies to: DUID-LL and DUID-LLT. .Sp Returns the \s-1IANA\s0 hardware type or undef if this parameter is irrelevant. .Sp Specify \*(L"format => 'text'\*(R" for a textual representation of this value. The default return value is numeric. .IP "\(bu" 4 \&\f(CW$p\fR\->\fIenterprise_number()\fR .Sp Applies to: DUID-EN. .Sp Returns the enterprise number. .IP "\(bu" 4 \&\f(CW$p\fR\->\fIidentifier()\fR .Sp Applies to: DUID-EN. .Sp Returns the identifier. .IP "\(bu" 4 \&\f(CW$p\fR\->local_link_address(..) .Sp Applies to: DUID-LL and DUID-LLT .Sp Returns the local link address. .Sp Specify \*(L"format => 'ethernet_mac'\*(R" for a pretty representation of this value. .Sp The formatting will only apply if the \s-1IANA\s0 hardware type is '1' \- i.e, if it's Ethernet. .SH "CREDITS" .IX Header "CREDITS" Mark Smith .SH "SEE ALSO" .IX Header "SEE ALSO" http://tools.ietf.org/html/rfc3315#section\-9 .SH "AUTHOR" .IX Header "AUTHOR" Tom Wright, 2010