📄 ch08_152.htm
字号:
<html><head><title>Net::Config (Perl in a Nutshell, 2nd Edition)</title><link rel="stylesheet" type="text/css" href="../style/style1.css" /><meta name="DC.Creator" content="Stephen Spainhour" /><meta name="DC.Format" content="text/xml" scheme="MIME" /><meta name="DC.Language" content="en-US" /><meta name="DC.Publisher" content="O'Reilly & Associates, Inc." /><meta name="DC.Source" scheme="ISBN" content="0596002416L" /><meta name="DC.Subject.Keyword" content="stuff" /><meta name="DC.Title" content="Perl in a Nutshell, 2nd Edition" /><meta name="DC.Type" content="Text.Monograph" /></head><body bgcolor="#ffffff"><img src="gifs/smbanner.gif" usemap="#banner-map" border="0" alt="Book Home" /><map name="banner-map"><area shape="rect" coords="1,-2,616,66" href="index.htm" alt="Java and XSLT" /><area shape="rect" coords="629,-11,726,25" href="jobjects/fsearch.htm" alt="Search this book" /></map><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch08_151.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228" /><td align="right" valign="top" width="228"><a href="ch08_153.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr></table></div><h2 class="sect1">8.152. Net::Config</h2><p><a name="INDEX-1508" />Holds configuration data for themodules in the libnet distribution. Net::Config builds thisconfiguration interactively at install time of libnet, and theNet::Config file is further queried when you use modules such asNet::FTP. This module is part of the core Perl distribution startingwith Perl 5.8.</p><p>Net::Config stores the following values (which can be<tt class="literal">undef</tt>): <tt class="literal">nntp_hosts</tt>,<tt class="literal">snpp_hosts</tt>, <tt class="literal">pop3_hosts</tt>,<tt class="literal">smtp_hosts</tt>, <tt class="literal">ph_hosts</tt>,<tt class="literal">daytime_hosts</tt>, and <tt class="literal">time_hosts</tt>.Each is a reference to an array of hostnames (in order ofpreference), which should be used for the given protocol. You canoverride any of the Net::Config values when you use any of themodules that live under the libnet umbrella. In addition, you canmaintain your own <em class="filename">.libnetrc</em> to hold your customvalues all the time. A sample <em class="filename">.libnetrc</em> follows:</p><blockquote><pre class="code">$ cat .libnetrc# .libnetrc{ nntp_hosts => [ "news.my.host", "news.their.host" ]}_ _END_ _</pre></blockquote><p>In addition to the options listed previously, the following optionscan be specified:</p><dl><dt><b><tt class="literal">inet_domain</tt> </b></dt><dd>Your Internet domain name.</p></dd><dt><b><tt class="literal">ftp_firewall</tt> </b></dt><dd>If you have an FTP proxy firewall (not an HTTP or SOCKS firewall),then this value should be set to the firewall hostname. If yourfirewall does not listen on port 21, then this value should be set to<tt class="literal">hostname:port</tt> (e.g.,<tt class="literal">hostname:99</tt>).</p></dd><dt><b><tt class="literal">ftp_firewall_type</tt></b></dt><dd>An integer from 1 to 7 signifying the sequence of commands thatNet::FTP will use to traverse a firewall, as follows:</p><dl><dt><b><tt class="literal">*</tt> </b></dt><dd>There is no firewall (default).</p></dd><dt><b><tt class="literal">1</tt> </b></dt><dd><blockquote><pre class="code">USER user@remote.hostPASS password</pre></blockquote></dd><dt><b><tt class="literal">2</tt> </b></dt><dd><blockquote><pre class="code">USER firewall_usernamePASS firewall_passwordUSER user@remote.hostPASS pass</pre></blockquote></dd><dt><b><tt class="literal">3</tt> </b></dt><dd><blockquote><pre class="code">USER firewall_usernamePASS firewall_passwordSITE remote.siteUSER userPASS pass</pre></blockquote></dd><dt><b><tt class="literal">4</tt> </b></dt><dd><blockquote><pre class="code">USER firewall_usernamePASS firewall_passwordOPEN remote.siteUSER userPASS pass</pre></blockquote></dd><dt><b><tt class="literal">5</tt> </b></dt><dd><blockquote><pre class="code">USER user@firewall_username@remote.sitePASS pass@firewall_password</pre></blockquote></dd><dt><b><tt class="literal">6</tt> </b></dt><dd><blockquote><pre class="code">USER firewall_username@remote.sitePASS firewall_passwordUSER userPASS pass</pre></blockquote></dd><dt><b><tt class="literal">7</tt> </b></dt><dd><blockquote><pre class="code">USER user@remote.hostPASS passAUTH firewall_usernameRESP firewall_password</pre></blockquote></dd></dl></dd><dt><b><tt class="literal">ftp_ext_passive</tt></b></dt><dt><b><tt class="literal">ftp_int_passive</tt></b></dt><dd>FTP servers normally work in a nonpassive mode: when you want totransfer data, you have to tell the server the address and port toconnect to. This becomes a problem because some servers cannotconnect to your machine through the second port becauseit's being used by the FTP connection. In this case,set <tt class="literal">ftp_ext_passive</tt> to true.</p><p>If your server is configured to only work in passive mode, you canforce Net::FTP to always transfer in passive mode when not going viaa firewall by setting ftp_int_passive to true.</p></dd><dt><b><tt class="literal">local_netmask</tt></b></dt><dd>A reference to a list of netmask strings. To be used by the<tt class="literal">requires_firewall</tt> function to determine if agiven host is inside or outside your firewall.</p></dd></dl><p>The following method is supported by Net::Config.</p><div class="refentry"><table width="515" border="0" cellpadding="5"><tr><td align="left"><font size="+1"><b>requires_firewall</b></font></td><td align="right"><i></i></td></tr></table><hr width="515" size="3" noshade="true" align="left" color="black" /><pre>requires_firewall(<em class="replaceable">host</em>)</pre><p>Determines if <em class="replaceable">host</em> is outside of yourfirewall. Possible return values are:</p><dl><dt><b><tt class="literal">-1</tt></b></dt><dd>Cannot look up hostname</p></dd><dt><b><tt class="literal">0</tt></b></dt><dd>Host is inside firewall (or there is no<tt class="literal">FTP_firewall</tt> entry)</p></dd><dt><b><tt class="literal">1</tt></b></dt><dd>Host is outside the firewall</p></dd></dl></div><hr width="684" align="left" /><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch08_151.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228"><a href="index.htm"><img src="../gifs/txthome.gif" alt="Home" border="0" /></a></td><td align="right" valign="top" width="228"><a href="ch08_153.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr><tr><td align="left" valign="top" width="228">8.151. Net::Cmd</td><td align="center" valign="top" width="228"><a href="index/index.htm"><img src="../gifs/index.gif" alt="Book Index" border="0" /></a></td><td align="right" valign="top" width="228">8.153. Net::Domain</td></tr></table></div><hr width="684" align="left" /><img src="../gifs/navbar.gif" usemap="#library-map" border="0" alt="Library Navigation Links" /><p><p><font size="-1"><a href="copyrght.htm">Copyright © 2002</a> O'Reilly & Associates. All rights reserved.</font></p><map name="library-map"><area shape="rect" coords="1,0,85,94" href="../index.htm"><area shape="rect" coords="86,1,178,103" href="../lwp/index.htm"><area shape="rect" coords="180,0,265,103" href="../lperl/index.htm"><area shape="rect" coords="267,0,353,105" href="../perlnut/index.htm"><area shape="rect" coords="354,1,446,115" href="../prog/index.htm"><area shape="rect" coords="448,0,526,132" href="../tk/index.htm"><area shape="rect" coords="528,1,615,119" href="../cookbook/index.htm"><area shape="rect" coords="617,0,690,135" href="../pxml/index.htm"></map></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -