home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _a22eea8daac4afe2741bc291c16785e2 < prev    next >
Text File  |  2000-03-23  |  8KB  |  213 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Net::DNS::Packet - DNS packet object class</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Net::DNS::Packet - DNS packet object class</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#methods">METHODS</A></LI>
  26.     <UL>
  27.  
  28.         <LI><A HREF="#new">new</A></LI>
  29.         <LI><A HREF="#data">data</A></LI>
  30.         <LI><A HREF="#header">header</A></LI>
  31.         <LI><A HREF="#question, zone">question, zone</A></LI>
  32.         <LI><A HREF="#answer, pre, prerequisite">answer, pre, prerequisite</A></LI>
  33.         <LI><A HREF="#authority, update">authority, update</A></LI>
  34.         <LI><A HREF="#additional">additional</A></LI>
  35.         <LI><A HREF="#print">print</A></LI>
  36.         <LI><A HREF="#string">string</A></LI>
  37.         <LI><A HREF="#answerfrom">answerfrom</A></LI>
  38.         <LI><A HREF="#answersize">answersize</A></LI>
  39.         <LI><A HREF="#push">push</A></LI>
  40.         <LI><A HREF="#dn_comp">dn_comp</A></LI>
  41.         <LI><A HREF="#dn_expand">dn_expand</A></LI>
  42.     </UL>
  43.  
  44.     <LI><A HREF="#copyright">COPYRIGHT</A></LI>
  45.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  46. </UL>
  47. <!-- INDEX END -->
  48.  
  49. <HR>
  50. <P>
  51. <H1><A NAME="name">NAME</A></H1>
  52. <P>Net::DNS::Packet - DNS packet object class</P>
  53. <P>
  54. <HR>
  55. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  56. <UL>
  57. <LI>Linux</LI>
  58. <LI>Solaris</LI>
  59. <LI>Windows</LI>
  60. </UL>
  61. <HR>
  62. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  63. <P><CODE>use Net::DNS::Packet;</CODE></P>
  64. <P>
  65. <HR>
  66. <H1><A NAME="description">DESCRIPTION</A></H1>
  67. <P>A <CODE>Net::DNS::Packet</CODE> object represents a DNS packet.</P>
  68. <P>
  69. <HR>
  70. <H1><A NAME="methods">METHODS</A></H1>
  71. <P>
  72. <H2><A NAME="new">new</A></H2>
  73. <PRE>
  74.     $packet = new Net::DNS::Packet(\$data);
  75.     $packet = new Net::DNS::Packet(\$data, 1);  # set debugging</PRE>
  76. <PRE>
  77.     $packet = new Net::DNS::Packet("foo.com");
  78.     $packet = new Net::DNS::Packet("foo.com", "MX", "IN");</PRE>
  79. <PRE>
  80.     ($packet, $err) = new Net::DNS::Packet(\$data);</PRE>
  81. <P>If passed a reference to a scalar containing DNS packet data,
  82. <CODE>new</CODE> creates a packet object from that data.  A second argument
  83. can be passed to turn on debugging output for packet parsing.</P>
  84. <P>If passed a domain, type, and class, <CODE>new</CODE> creates a packet
  85. object appropriate for making a DNS query for the requested
  86. information.  The type and class can be omitted; they default
  87. to A and IN.</P>
  88. <P>If called in array context, returns a packet object and an
  89. error string.  The error string will only be defined if the
  90. packet object is undefined (i.e., couldn't be created).</P>
  91. <P>Returns <STRONG>undef</STRONG> if unable to create a packet object (e.g., if
  92. the packet data is truncated).</P>
  93. <P>
  94. <H2><A NAME="data">data</A></H2>
  95. <PRE>
  96.     $data = $packet->data;</PRE>
  97. <P>Returns the packet data in binary format, suitable for sending to
  98. a nameserver.</P>
  99. <P>
  100. <H2><A NAME="header">header</A></H2>
  101. <PRE>
  102.     $header = $packet->header;</PRE>
  103. <P>Returns a <CODE>Net::DNS::Header</CODE> object representing the header section
  104. of the packet.</P>
  105. <P>
  106. <H2><A NAME="question, zone">question, zone</A></H2>
  107. <PRE>
  108.     @question = $packet->question;</PRE>
  109. <P>Returns a list of <CODE>Net::DNS::Question</CODE> objects representing the
  110. question section of the packet.</P>
  111. <P>In dynamic update packets, this section is known as <CODE>zone</CODE> and
  112. specifies the zone to be updated.</P>
  113. <P>
  114. <H2><A NAME="answer, pre, prerequisite">answer, pre, prerequisite</A></H2>
  115. <PRE>
  116.     @answer = $packet->answer;</PRE>
  117. <P>Returns a list of <CODE>Net::DNS::RR</CODE> objects representing the answer
  118. section of the packet.</P>
  119. <P>In dynamic update packets, this section is known as <CODE>pre</CODE> or
  120. <CODE>prerequisite</CODE> and specifies the RRs or RRsets which must or
  121. must not preexist.</P>
  122. <P>
  123. <H2><A NAME="authority, update">authority, update</A></H2>
  124. <PRE>
  125.     @authority = $packet->authority;</PRE>
  126. <P>Returns a list of <CODE>Net::DNS::RR</CODE> objects representing the authority
  127. section of the packet.</P>
  128. <P>In dynamic update packets, this section is known as <CODE>update</CODE> and
  129. specifies the RRs or RRsets to be added or delted.</P>
  130. <P>
  131. <H2><A NAME="additional">additional</A></H2>
  132. <PRE>
  133.     @additional = $packet->additional;</PRE>
  134. <P>Returns a list of <CODE>Net::DNS::RR</CODE> objects representing the additional
  135. section of the packet.</P>
  136. <P>
  137. <H2><A NAME="print">print</A></H2>
  138. <PRE>
  139.     $packet->print;</PRE>
  140. <P>Prints the packet data on the standard output in an ASCII format
  141. similar to that used in DNS zone files.</P>
  142. <P>
  143. <H2><A NAME="string">string</A></H2>
  144. <PRE>
  145.     print $packet->string;</PRE>
  146. <P>Returns a string representation of the packet.</P>
  147. <P>
  148. <H2><A NAME="answerfrom">answerfrom</A></H2>
  149. <PRE>
  150.     print "packet received from ", $packet->answerfrom, "\n";</PRE>
  151. <P>Returns the IP address from which we received this packet.  User-created
  152. packets will return undef for this method.</P>
  153. <P>
  154. <H2><A NAME="answersize">answersize</A></H2>
  155. <PRE>
  156.     print "packet size: ", $packet->answersize, " bytes\n";</PRE>
  157. <P>Returns the size of the packet in bytes as it was received from a
  158. nameserver.  User-created packets will return undef for this method
  159. (use <CODE>length $packet</CODE>-><CODE>data</CODE> instead).</P>
  160. <P>
  161. <H2><A NAME="push">push</A></H2>
  162. <PRE>
  163.     $packet->push("pre", $rr);
  164.     $packet->push("update", $rr);
  165.     $packet->push("additional", $rr);</PRE>
  166. <PRE>
  167.     $packet->push("update", $rr1, $rr2, $rr3);
  168.     $packet->push("update", @rr);</PRE>
  169. <P>Adds RRs to the specified section of the packet.</P>
  170. <P>
  171. <H2><A NAME="dn_comp">dn_comp</A></H2>
  172. <PRE>
  173.     $compname = $packet->dn_comp("foo.bar.com", $offset);</PRE>
  174. <P>Returns a domain name compressed for a particular packet object, to
  175. be stored beginning at the given offset within the packet data.  The
  176. name will be added to a running list of compressed domain names for
  177. future use.</P>
  178. <P>
  179. <H2><A NAME="dn_expand">dn_expand</A></H2>
  180. <PRE>
  181.     use Net::DNS::Packet qw(dn_expand);
  182.     ($name, $nextoffset) = dn_expand(\$data, $offset);</PRE>
  183. <PRE>
  184.     ($name, $nextoffset) = Net::DNS::Packet::dn_expand(\$data, $offset);</PRE>
  185. <P>Expands the domain name stored at a particular location in a DNS
  186. packet.  The first argument is a reference to a scalar containing
  187. the packet data.  The second argument is the offset within the
  188. packet where the (possibly compressed) domain name is stored.</P>
  189. <P>Returns the domain name and the offset of the next location in the
  190. packet.</P>
  191. <P>Returns <STRONG>(undef, undef)</STRONG> if the domain name couldn't be expanded.</P>
  192. <P>
  193. <HR>
  194. <H1><A NAME="copyright">COPYRIGHT</A></H1>
  195. <P>Copyright (c) 1997 Michael Fuhr.  All rights reserved.  This program is free
  196. software; you can redistribute it and/or modify it under the same terms as
  197. Perl itself.</P>
  198. <P>
  199. <HR>
  200. <H1><A NAME="see also">SEE ALSO</A></H1>
  201. <P><EM>perl(1)</EM>, <A HREF="../../../../site/lib/Net/DNS.html">the Net::DNS manpage</A>, <A HREF="../../../../site/lib/Net/DNS/Resolver.html">the Net::DNS::Resolver manpage</A>, <A HREF="../../../../site/lib/Net/DNS/Update.html">the Net::DNS::Update manpage</A>,
  202. <A HREF="../../../../site/lib/Net/DNS/Header.html">the Net::DNS::Header manpage</A>, <A HREF="../../../../site/lib/Net/DNS/Question.html">the Net::DNS::Question manpage</A>, <A HREF="../../../../site/lib/Net/DNS/RR.html">the Net::DNS::RR manpage</A>,
  203. RFC 1035 Section 4.1, RFC 2136 Section 2</P>
  204. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  205. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  206. <STRONG><P CLASS=block> Net::DNS::Packet - DNS packet object class</P></STRONG>
  207. </TD></TR>
  208. </TABLE>
  209.  
  210. </BODY>
  211.  
  212. </HTML>
  213.