Net::Config(3perl)
π NAME π
Net::Config β local configuration data for libnet, aka the little home-base file where all your libnet modules go to find out where everything lives. Net::Config(3perl), bestie, sit down, we're learning. π
β¨ SYNOPSIS β¨
use Net::Config qw(%NetConfig);
That's it. That's the whole vibe. π¦
πΈ DESCRIPTION πΈ
Okay so Net::Config is literally holding the configuration data for all the modules in the libnet distribution. When you install it, the installer is gonna ask you for these values β so this file is basically the receipts. π
The config data lives globally in a file in the perl installation tree, but you (yes, YOU, main character) can override any of these values by bringing your own. How? Drop a .libnetrc file in your home directory. That file should return a reference to a HASH containing the keys described below. For example:
# .libnetrc
{
nntp_hosts => [ "my_preferred_host" ],
ph_hosts => [ "my_ph_server" ],
}
__END__
Not me making a whole custom configβ¦ iconic behavior honestly. π
π§ Class Methods
Net::Config defines the following methods. They're methods and not just plain functions because they're invoked as class methods β and that's because Net::Config inherits from Net::LocalCfg, which means you can override these methods if you want to. Go off, customize. β¨
requires_firewall($host)β Tries to figure out whether a given host is sitting outside your firewall. Possible return values are:
-1 Cannot lookup hostname
0 Host is inside firewall (or there is no ftp_firewall entry)
1 Host is outside the firewall
How does it do this? Hostname lookup plus the local_netmask entry in the configuration data. That's the whole trick. π
π NetConfig Values
nntp_hostssnpp_hostspop3_hostssmtp_hostsph_hostsdaytime_hoststime_hosts
Each of these is a reference to an array of hostnames (listed in order of preference), which should be used for the given protocol. Ranked, like a tier list. π
inet_domainβ your internet domain name. Simple. Elegant. We love her.ftp_firewallβ if you have an FTP proxy firewall (NOT an HTTP or SOCKS firewall, read it again bestie) then set this value to the firewall hostname. If your firewall does not listen on port 21, then set this value to"hostname:port"(e.g."hostname:99").ftp_firewall_typeβ there are so many different ftp firewall products out there, and unfortunately there's no standard for how to traverse a firewall. The list below shows the sequence of commands thatNet::FTPwill use:
user Username for remote host
pass Password for remote host
fwuser Username for firewall
fwpass Password for firewall
remote.host The hostname of the remote ftp server
0β there is no firewall1
USER user@remote.host
PASS pass
2
USER fwuser
PASS fwpass
USER user@remote.host
PASS pass
3
USER fwuser
PASS fwpass
SITE remote.site
USER user
PASS pass
4
USER fwuser
PASS fwpass
OPEN remote.site
USER user
PASS pass
5
USER user@fwuser@remote.site
PASS pass@fwpass
6
USER fwuser@remote.site
PASS fwpass
USER user
PASS pass
7
USER user@remote.host
PASS pass
AUTH fwuser
RESP fwpass
ftp_ext_passiveftp_int_passive
FTP servers can work in passive or active mode. Active mode is when you want to transfer data and you have to tell the server the address and port to connect to. Passive mode is when the server provides the address and port, and you establish the connection. Different energy entirely. π
With some firewalls, active mode just does not work, because the server can't connect to your machine (you're behind a firewall, bestie) and the firewall doesn't re-write the command. In that case you should set ftp_ext_passive to a true value.
Some servers are configured to only work in passive mode. If you've got one of those, you can force Net::FTP to always transfer in passive mode β when not going via a firewall β by setting ftp_int_passive to a true value. Forcing it. Periodt. π
local_netmaskβ a reference to a list of netmask strings in the form"134.99.4.0/24". These are used by therequires_firewallfunction to determine if a given host is inside or outside your firewall. π
The following entries are used during installation & testing on the libnet package:
test_hostsβ if true, thenmake testmay attempt to connect to hosts given in the configuration.test_existsβ if true, thenConfigurewill check each hostname given that it exists.
π«Ά EXPORTS π«Ά
The following symbols are, or can be, exported by this module:
Default Exports
%NetConfig.
Optional Exports
- None.
Export Tags
- None.
π KNOWN BUGS π
None. Flawless. No notes. πβ¨
π AUTHOR π
Graham Barr <gbarr@pobox.com <mailto:gbarr@pobox.com>>.
Steve Hay <shay@cpan.org <mailto:shay@cpan.org>> is now maintaining libnet as of version 1.22_02.
π COPYRIGHT π
Copyright (C) 2000 Graham Barr. All rights reserved.
Copyright (C) 2013-2014, 2016, 2020 Steve Hay. All rights reserved.
π LICENCE π
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself, i.e. under the terms of either the GNU General Public License or the Artistic License, as specified in the LICENCE file.
β VERSION β
Version 3.15
π¦ DATE π¦
20 March 2023
π HISTORY π
See the Changes file.
And that's the whole page, bestie π β this one came from perl v5.44.0, dated 2026-10-17, and it's the Net::Config(3perl) manual. Go configure something slay. ππ
π¦ where this page comes from
- arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms