Net::Config

Holds configuration data for the modules in the libnet distribution. Net::Config builds this configuration interactively at install time of libnet, and the Net::Config file is further queried when you use modules such as Net::FTP. This module is part of the core Perl distribution starting with Perl 5.8.

Net::Config stores the following values (which can be undef): nntp_hosts, snpp_hosts, pop3_hosts, smtp_hosts, ph_hosts, daytime_hosts, and time_hosts. Each is a reference to an array of hostnames (in order of preference), which should be used for the given protocol. You can override any of the Net::Config values when you use any of the modules that live under the libnet umbrella. In addition, you can maintain your own libnetrc to hold your custom values all the time. A sample libnetrc follows:

$ cat .libnetrc # .libnetrc {
 nntp_hosts => [ "news.my.host", "news.their.host" ]
}
_ _END_ _

In addition to the options listed previously, the following options can be specified:

  • inet_domain
  • Your Internet domain name.
  • ftp_firewall
  • If you have an FTP proxy firewall (not an HTTP or SOCKS firewall), then this value should be set to the firewall hostname. If your firewall does not listen on port 21, then this value should be set to hostname:port (e.g., hostname:99).
  • ftp_firewall_type
  • An integer from 1 to 7 signifying the sequence of commands that Net::FTP will use to traverse a firewall, as follows:
    • *
    • There is no firewall (default).
    • USER user@remote.host PASS password
      
    • USER firewall_username PASS firewall_password USER user@remote.host PASS pass
      
    • USER firewall_username PASS firewall_password SITE remote.site USER user PASS pass
      
    • USER firewall_username PASS firewall_password OPEN remote.site USER user PASS pass
      
    • USER user@firewall_username@remote.site PASS pass@firewall_password
      
    • USER firewall_username@remote.site PASS firewall_password USER user PASS pass
      
    • USER user@remote.host PASS pass AUTH firewall_username RESP firewall_password
      
  • ftp_ext_passive
  • ftp_int_passive
  • FTP servers normally work in a nonpassive mode: when you want to transfer data, you have to tell the server the address and port to connect to. This becomes a problem because some servers cannot connect to your machine through the second port because it's being used by the FTP connection. In this case, set ftp_ext_passive to true.

    If your server is configured to only work in passive mode, you can force Net::FTP to always transfer in passive mode when not going via a firewall by setting ftp_int_passive to true.

  • local_netmask
  • A reference to a list of netmask strings. To be used by the requires_firewall function to determine if a given host is inside or outside your firewall.

The following method is supported by Net::Config.

requires_firewall

requires_firewall(host) 

Determines if host is outside of your firewall. Possible return values are:

  • -1
  • Cannot look up hostname
  • Host is inside firewall (or there is no FTP_firewall entry)
  • Host is outside the firewall