.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) .\" .\" 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" '' '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. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" 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::DRI::Data::Hosts 3pm" .TH Net::DRI::Data::Hosts 3pm "2010-03-25" "perl v5.10.1" "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::DRI::Data::Hosts \- Handle ordered list of nameservers (name, IPv4 addresses, IPv6 addresses) for Net::DRI .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Net::DRI::Data::Hosts; \& \& my $dh=Net::DRI::Data::Hosts\->new(); \& $dh\->add(\*(Aqns.example.foo\*(Aq,[\*(Aq1.2.3.4\*(Aq,\*(Aq1.2.3.5\*(Aq]); \& $dh\->add(\*(Aqns2.example.foo\*(Aq,[\*(Aq10.1.1.1\*(Aq]); ## Third element can be an array ref of IPv6 addresses \& ## \->add() returns the object itself, and thus can be chained \& \& ## Number of nameservers \& print $dh\->count(); ## Gives 2 \& \& ## List of names, either all without arguments, or the amount given by the argument \& my @a=$dh\->get_names(2); ## Gives (\*(Aqns.example.foo\*(Aq,\*(Aqns2.example.foo\*(Aq) \& \& ## Details for the nth nameserver (the list starts at 1 !) \& my @d=$dh\->get_details(2); ## Gives (\*(Aqns2.example.foo\*(Aq,[\*(Aq10.1.1.1\*(Aq]) \& \& ## Details by name is possible also \& my @d=$dh\->get_details(\*(Aqns2.example.foo\*(Aq); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Order of nameservers is preserved. Order of \s-1IP\s0 addresses is preserved, but no duplicate \s-1IP\s0 is allowed. .PP If you try to add a nameserver that is already in the list, the \s-1IP\s0 addresses provided will be added to the existing \s-1IP\s0 addresses (without duplicates) .PP Hostnames are verified before being used with \fINet::DRI::Util::is_hostname()\fR. .PP \&\s-1IP\s0 addresses are verified with \fINet::DRI::Util::is_ipv4()\fR and \fINet::DRI::Util::is_ipv6()\fR. .SH "METHODS" .IX Header "METHODS" .SS "new(...)" .IX Subsection "new(...)" creates a new instance ; if parameters are given, \fIadd()\fR is called with them all at once .SS "new_set(...)" .IX Subsection "new_set(...)" creates a new instance ; if parameters are given, \fIadd()\fR is called once for each parameter .SS "\fIclear()\fP" .IX Subsection "clear()" clears the current list of nameservers .SS "set(...)" .IX Subsection "set(...)" clears the current list of nameservers, and call \fIadd()\fR once for each parameter passed .SS "add(name,[ipv4],[ipv6])" .IX Subsection "add(name,[ipv4],[ipv6])" adds a new nameserver with the given name and lists of IPv4 and IPv6 addresses .SS "\fIname()\fP" .IX Subsection "name()" name of this object (for example for registries having the notion of host groups) ; this has nothing to do with the name(s) of the nameservers inside this object .SS "\fIloid()\fP" .IX Subsection "loid()" local id of this object .SS "get_names(limit)" .IX Subsection "get_names(limit)" returns a list of nameservers' names included in this object ; if limit is provided we return only the number of names asked .SS "\fIcount()\fP" .IX Subsection "count()" returns the number of nameservers currently stored in this object .SS "\fIis_empty()\fP" .IX Subsection "is_empty()" returns 0 if this object has nameservers, 1 otherwise .SS "get_details(pos_or_name)" .IX Subsection "get_details(pos_or_name)" given an integer (position in the list, we start to count at 1) or a name, we return all details as a 3 element array in list context or only the first element (the name) in scalar context for the nameserver stored at the given position or with the given name ; returns undef if nothing found at the position/with the name given. .SH "SUPPORT" .IX Header "SUPPORT" For now, support questions should be sent to: .PP .PP Please also see the \s-1SUPPORT\s0 file in the distribution. .SH "SEE ALSO" .IX Header "SEE ALSO" http://www.dotandco.com/services/software/Net\-DRI/ .SH "AUTHOR" .IX Header "AUTHOR" Patrick Mevzek, .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2005,2006,2007,2008,2009 Patrick Mevzek . All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP See the \s-1LICENSE\s0 file that comes with this distribution for more details.