Net::Inet(3) User Contributed Perl Documentation Net::Inet(3)NAMENet::Inet - Internet socket interface module
SYNOPSIS
use Net::Gen; # optional
use Net::Inet;
DESCRIPTION
The "Net::Inet" module provides basic services for handling socket-
based communications for the Internet protocol family. It inherits
from "Net::Gen", and is a base for "Net::TCP" and "Net::UDP".
Public Methods
new Usage:
$obj = new Net::Inet;
$obj = new Net::Inet $desthost, $destservice;
$obj = new Net::Inet \%parameters;
$obj = new Net::Inet $desthost, $destservice, \%parameters;
$obj = 'Net::Inet'->new();
$obj = 'Net::Inet'->new($desthost, $destservice);
$obj = 'Net::Inet'->new(\%parameters);
$obj = 'Net::Inet'->new($desthost, $destservice, \%parameters);
Returns a newly-initialised object of the given class. If called
for a derived class, no validation of the supplied parameters will
be performed. (This is so that the derived class can set up the
parameter validation it needs in the object before allowing the
validation.) Otherwise, it will cause the parameters to be vali-
dated by calling its "init" method. In particular, this means that
if both a host and a service are given, then an object will only be
returned if a connect() call was successful, or if the object is
non-blocking and a connect() call is in progress.
The examples above show the indirect object syntax which many pre-
fer, as well as the guaranteed-to-be-safe static method call.
There are occasional problems with the indirect object syntax,
which tend to be rather obscure when encountered. See
http://www.xray.mpe.mpg.de/mail-
ing-lists/perl-porters/1998-01/msg01674.html for details.
init
Usage:
return undef unless $self->init;
return undef unless $self->init(\%parameters);
return undef unless $self->init($desthost, $destservice);
return undef unless $self->init($desthost, $destservice, \%parameters);
Verifies that all previous parameter assignments are valid (via
"checkparams"). Returns the incoming object on success, and
"undef" on failure. Usually called only via a derived class's
"init" method or its own "new" call.
bind
Usage:
$ok = $obj->bind;
$ok = $obj->bind($lclhost, $lclservice);
$ok = $obj->bind($lclhost, $lclservice, \%parameters);
Sets up the "srcaddrlist" object parameter with the specified
$lclhost and $lclservice arguments if supplied (via the "thishost"
and "thisport" object parameters), and then returns the value from
the inherited "bind" method. Changing of parameters is also
allowed, mainly for setting debug status or timeouts.
Example:
$ok = $obj->bind(0, 'echo(7)'); # attach to the local TCP echo port
unbind
Usage:
$obj->unbind;
Deletes the "thishost" and "thisport" object parameters, and then
(assuming that succeeds, which it should) returns the value from
the inherited "unbind" method.
connect
Usage:
$ok = $obj->connect;
$ok = $obj->connect($host, $service);
$ok = $obj->connect($host, $service, \%parameters);
Attempts to establish a connection for the object. If the $host or
$service arguments are specified, they will be used to set the
"desthost" and "destservice"/"destport" object parameters, with
side-effects of setting up the "dstaddrlist" object parameter.
Then, the result of a call to the inherited "connect" method will
be returned. Changing of parameters is also allowed, mainly for
setting debug status or timeouts.
format_addr
Usage:
$string = $obj->format_addr($sockaddr);
$string = $obj->format_addr($sockaddr, $numeric_only);
$string = format_addr Module $sockaddr;
$string = format_addr Module $sockaddr, $numeric_only;
Returns a formatted representation of the address. This is a
method so that it can be overridden by derived classes. It is used
to implement ``pretty-printing'' methods for source and destination
addresses. If the $numeric_only argument is true, the address and
port number will be used even if they can be resolved to names.
Otherwise, the resolved hostname and service name will be used if
possible.
format_local_addr
Usage:
$string = $obj->format_local_addr;
$string = $obj->format_local_addr($numeric_only);
Returns a formatted representation of the local socket address
associated with the object. A sugar-coated way of calling the
"format_addr" method for the "srcaddr" object parameter.
format_remote_addr
Usage:
$string = $obj->format_remote_addr;
Returns a formatted representation of the remote socket address
associated with the object. A sugar-coated way of calling the
"format_addr" method for the "dstaddr" object parameter.
getsockinfo
An augmented form of "Net::Gen::getsockinfo". Aside from updating
more object parameters, it behaves the same as that in the base
class. The additional object parameters which get set are
"lcladdr", "lclhost", "lclport", "lclservice", "remaddr",
"remhost", "remport", and "remservice". (They are described in
"Known Object Parameters" below.)
There are also various accessor methods for the object parameters. See
"Public Methods" in Net::Gen (where it talks about "Accessors") for
calling details. See "Known Object Parameters" below for those defined
by this class.
Protected Methods
[See the note in "Protected Methods" in Net::Gen about my definition of
protected methods in Perl.]
None.
Known Socket Options
These are the socket options known to the "Net::Inet" module itself:
"IP_HDRINCL" "IP_RECVDSTADDR" "IP_RECVOPTS" "IP_RECVRETOPTS"
"IP_TOS" "IP_TTL" "IP_ADD_MEMBERSHIP" "IP_DROP_MEMBERSHIP" "IP_MUL-
TICAST_IF" "IP_MULTICAST_LOOP" "IP_MULTICAST_TTL" "IP_OPTIONS"
"IP_RETOPTS"
Known Object Parameters
These are the object parameters registered by the "Net::Inet" module
itself:
IPproto
The name of the Internet protocol in use on the socket associated
with the object. Set as a side-effect of setting the "proto"
object parameter, and vice versa.
proto
Used the same way as with "Net::Gen", but has a handler attached to
keep it in sync with "IPproto".
thishost
The source host name or address to use for the "bind" method. When
used in conjunction with the "thisservice" or "thisport" object
parameter, causes the "srcaddrlist" object parameter to be set,
which is how it affects the bind() action. This parameter is vali-
dated, and must be either a valid internet address or a hostname
for which an address can be found. If a hostname is given, and
multiple addresses are found for it, then each address will be
entered into the "srcaddrlist" array reference.
desthost
The destination host name or address to use for the "connect"
method. When used in conjunction with the "destservice" or "dest-
port" object parameter, causes the "dstaddrlist" object parameter
to be set, which is how it affects the connect() action. This
parameter is validated, and must be either a valid internet address
or a hostname for which an address can be found. If a hostname is
given, and multiple addresses are found for it, then each address
will be entered into the "dstaddrlist" array reference, in order.
This allows the "connect" method to attempt a connection to each
address, as per RFC 1123.
thisservice
The source service name (or number) to use for the "bind" method.
An attempt will be made to translate the supplied service name with
getservbyname(). If that succeeds, or if it fails but the supplied
value was strictly numeric, the port number will be set in the
"thisport" object parameter. If the supplied value is not numeric
and can't be translated, the attempt to set the value will fail.
Otherwise, this causes the "srcaddrlist" object parameter to be
updated, in preparation for an invocation of the "bind" method
(possibly implicitly from the "connect" method).
thisport
The source service number (or name) to use for the "bind" method.
An attempt will be made to translate the supplied service name with
getservbyname() if it is not strictly numeric. If that succeeds,
the given name will be set in the "thisservice" parameter, and the
resolved port number will be set in the "thisport" object parame-
ter. If the supplied value is strictly numeric, and a call to get-
servbyport can resolve a name for the service, the "thisservice"
parameter will be updated appropriately. If the supplied value is
not numeric and can't be translated, the attempt to set the value
will fail. Otherwise, this causes the "srcaddrlist" object parame-
ter to be updated, in preparation for an invocation of the "bind"
method (possibly implicitly from the "connect" method).
destservice
The destination service name (or number) to use for the "connect"
method. An attempt will be made to translate the supplied service
name with getservbyname(). If that succeeds, or if it fails but
the supplied value was strictly numeric, the port number will be
set in the "destport" object parameter. If the supplied value is
not numeric and can't be translated, the attempt to set the value
will fail. Otherwise, if the "desthost" parameter has a defined
value, this causes the "dstaddrlist" object parameter to be
updated, in preparation for an invocation of the "connect" method.
destport
The destination service number (or name) to use for the "connect"
method. An attempt will be made to translate the supplied service
name with getservbyname() if it is not strictly numeric. If that
succeeds, the given name will be set in the "destservice" parame-
ter, and the resolved port number will be set in the "destport"
parameter. If the supplied value is strictly numeric, and a call
to getservbyport can resolve a name for the service, the "destser-
vice" parameter will be updated appropriately. If the supplied
value is not numeric and can't be translated, the attempt to set
the value will fail. Otherwise, if the "desthost" parameter has a
defined value, this causes the "dstaddrlist" object parameter to be
updated, in preparation for an invocation of the "connect" method.
lcladdr
The local IP address stashed by the "getsockinfo" method after a
successful bind() or connect() call.
lclhost
The local hostname stashed by the "getsockinfo" method after a suc-
cessful bind() or connect(), as resolved from the "lcladdr" object
parameter.
lclport
The local port number stashed by the "getsockinfo" method after a
successful bind() or connect() call.
lclservice
The local service name stashed by the "getsockinfo" method after a
successful bind() or connect(), as resolved from the "lclport"
object parameter.
remaddr
The remote IP address stashed by the "getsockinfo" method after a
successful connect() call.
remhost
The remote hostname stashed by the "getsockinfo" method after a
successful connect() call, as resolved from the "remaddr" object
parameter.
remport
The remote port number stashed by the "getsockinfo" method after a
successful connect() call.
remservice
The remote service name stashed by the "getsockinfo" method after a
successful connect() call, as resolved from the "remport" object
parameter.
Non-Method Subroutines
inet_aton
Usage:
$in_addr = inet_aton('192.0.2.1');
Returns the packed "AF_INET" address in network order, if it is
validly formed, or "undef" on error. This used to be a separate
implementation in this package, but is now inherited from the
"Socket" module.
inet_addr
A synonym for inet_aton() (for old fogeys like me who forget about
the new name). (Yes, I know it's different in C, but in Perl
there's no need to propagate the old inet_addr() braindamage of
being unable to handle "255.255.255.255", so I didn't.)
inet_ntoa
Usage:
$addr_string = inet_ntoa($in_addr);
Returns the ASCII representation of the "AF_INET" address provided
(if possible), or "undef" on error. This used to be a separate
implementation in this package, but is now inherited from the
"Socket" module.
htonl
htons
ntohl
ntohs
About as those who are used to them might expect, I think. How-
ever, these versions will return lists in list context, and will
complain if given a multi-element list in scalar context.
[For those who don't know what these are, and who don't have docu-
mentation on them in their existing system documentation, these
functions convert data between 'host' and 'network' byte ordering,
for 'short' or 'long' network data. (This should explain the 'h',
'n', 's', and 'l' letters in the names.) Long network data means
32-bit quantities, such as IP addresses, and short network data
means 16-bit quantities, such as IP port numbers. You'd only need
to use these functions if you're not using the methods from this
package to build your packed 'sockaddr' structures or to unpack
their data after a connect() or accept().]
pack_sockaddr_in
Usage:
$connect_address = pack_sockaddr_in($family, $port, $in_addr);
$connect_address = pack_sockaddr_in($port, $in_addr);
Returns the packed "struct sockaddr_in" corresponding to the pro-
vided $family, $port, and $in_addr arguments. The $family and
$port arguments must be numbers, and the $in_addr argument must be
a packed "struct in_addr" such as the trailing elements from perl's
gethostent() return list. This differs from the implementation in
the "Socket" module in that the $family argument is available
(though optional). The $family argument defaults to "AF_INET".
unpack_sockaddr_in
Usage:
($family, $port, $in_addr) = unpack_sockaddr_in($connected_address);
Returns the address family, port, and packed "struct in_addr" from
the supplied packed "struct sockaddr_in". This is the inverse of
pack_sockaddr_in(). This differs from the implementation in the
"Socket" module in that the $family value from the socket address
is returned (and might not be "AF_INET").
INADDR_UNSPEC_GROUP
INADDR_ALLHOSTS_GROUP
INADDR_ALLRTRS_GROUP
INADDR_MAX_LOCAL_GROUP
Constant routines returning the unspecified local, all hosts,
all routers, or the maximum possible local IP multicast group
address, respectively. These routines return results in the form
of a packed "struct inaddr" much like the "INADDR_ANY" result
described in "INADDR_ANY" in Socket.
IN_CLASSA
IN_CLASSB
IN_CLASSC
IN_CLASSD
IN_MULTICAST
IN_EXPERIMENTAL
IN_BADCLASS
Usage:
$boolean = IN_EXPERIMENTAL(INADDR_ALLHOSTS_GROUP);
$boolean = IN_CLASSA(0x7f000001);
These routines return the network class information for the sup-
plied IP address. Of these, only IN_BADCLASS() and IN_MULTICAST()
are really useful in today's Internet, since the advent of CIDR
(classless Internet domain routing). In particular, IN_EXPERIMEN-
TAL() is at the mercy of your vendor's definition. The first exam-
ple above will be true only on older systems, which almost cer-
tainly don't support IP multicast anyway. The argument to any of
these functions can be either a packed "struct inaddr" such as that
returned by inet_ntoa() or unpack_sockaddr_in(), or an integer (or
integer expression) giving an IP address in host byte order.
IPOPT_CLASS
IPOPT_COPIED
IPOPT_NUMBER
Usage:
$optnum = IPOPT_NUMBER($option);
These routines extract information from IP option numbers, as per
the information on IP options in RFC 791.
... Other constants which relate to parts of IP or ICMP headers or ven-
dor-defined socket options, as listed in "Exports" below.
Exports
default
"INADDR_ALLHOSTS_GROUP" "INADDR_ALLRTRS_GROUP" "INADDR_ANY"
"INADDR_BROADCAST" "INADDR_LOOPBACK" "INADDR_MAX_LOCAL_GROUP"
"INADDR_NONE" "INADDR_UNSPEC_GROUP" "IPPORT_RESERVED" "IPPORT_USER-
RESERVED" "IPPORT_DYNAMIC" "IPPROTO_EGP" "IPPROTO_EON"
"IPPROTO_GGP" "IPPROTO_HELLO" "IPPROTO_ICMP" "IPPROTO_IDP"
"IPPROTO_IGMP" "IPPROTO_IP" "IPPROTO_IPIP" "IPPROTO_MAX"
"IPPROTO_PUP" "IPPROTO_RAW" "IPPROTO_RSVP" "IPPROTO_TCP"
"IPPROTO_TP" "IPPROTO_UDP" "htonl" "htons" "inet_addr" "inet_aton"
"inet_ntoa" "ntohl" "ntohs"
exportable
"DEFTTL" "ICMP_ADVLENMIN" "ICMP_ECHO" "ICMP_ECHOREPLY" "ICMP_INFO-
TYPE" "ICMP_IREQ" "ICMP_IREQREPLY" "ICMP_MASKLEN" "ICMP_MASKREPLY"
"ICMP_MASKREQ" "ICMP_MAXTYPE" "ICMP_MINLEN" "ICMP_PARAMPROB"
"ICMP_REDIRECT" "ICMP_REDIRECT_HOST" "ICMP_REDIRECT_NET" "ICMP_RE-
DIRECT_TOSHOST" "ICMP_REDIRECT_TOSNET" "ICMP_SOURCEQUENCH"
"ICMP_TIMXCEED" "ICMP_TIMXCEED_INTRANS" "ICMP_TIMXCEED_REASS"
"ICMP_TSLEN" "ICMP_TSTAMP" "ICMP_TSTAMPREPLY" "ICMP_UNREACH"
"ICMP_UNREACH_HOST" "ICMP_UNREACH_NEEDFRAG" "ICMP_UNREACH_NET"
"ICMP_UNREACH_PORT" "ICMP_UNREACH_PROTOCOL" "ICMP_UNREACH_SRCFAIL"
"IN_BADCLASS" "IN_CLASSA" "IN_CLASSA_HOST" "IN_CLASSA_MAX"
"IN_CLASSA_NET" "IN_CLASSA_NSHIFT" "IN_CLASSA_SUBHOST"
"IN_CLASSA_SUBNET" "IN_CLASSA_SUBNSHIFT" "IN_CLASSB"
"IN_CLASSB_HOST" "IN_CLASSB_MAX" "IN_CLASSB_NET" "IN_CLASSB_NSHIFT"
"IN_CLASSB_SUBHOST" "IN_CLASSB_SUBNET" "IN_CLASSB_SUBNSHIFT"
"IN_CLASSC" "IN_CLASSC_HOST" "IN_CLASSC_MAX" "IN_CLASSC_NET"
"IN_CLASSC_NSHIFT" "IN_CLASSD" "IN_CLASSD_HOST" "IN_CLASSD_NET"
"IN_CLASSD_NSHIFT" "IN_EXPERIMENTAL" "IN_LOOPBACKNET" "IN_MULTI-
CAST" "IPFRAGTTL" "IPOPT_CIPSO" "IPOPT_CLASS" "IPOPT_CONTROL"
"IPOPT_COPIED" "IPOPT_DEBMEAS" "IPOPT_EOL" "IPOPT_LSRR"
"IPOPT_MINOFF" "IPOPT_NOP" "IPOPT_NUMBER" "IPOPT_OFFSET"
"IPOPT_OLEN" "IPOPT_OPTVAL" "IPOPT_RESERVED1" "IPOPT_RESERVED2"
"IPOPT_RIPSO_AUX" "IPOPT_RR" "IPOPT_SATID" "IPOPT_SECURITY"
"IPOPT_SECUR_CONFID" "IPOPT_SECUR_EFTO" "IPOPT_SECUR_MMMM"
"IPOPT_SECUR_RESTR" "IPOPT_SECUR_SECRET" "IPOPT_SECUR_TOPSECRET"
"IPOPT_SECUR_UNCLASS" "IPOPT_SSRR" "IPOPT_TS" "IPOPT_TS_PRESPEC"
"IPOPT_TS_TSANDADDR" "IPOPT_TS_TSONLY" "IPPORT_TIMESERVER"
"IPTOS_LOWDELAY" "IPTOS_PREC_CRITIC_ECP" "IPTOS_PREC_FLASH"
"IPTOS_PREC_FLASHOVERRIDE" "IPTOS_PREC_IMMEDIATE"
"IPTOS_PREC_INTERNETCONTROL" "IPTOS_PREC_NETCONTROL"
"IPTOS_PREC_PRIORITY" "IPTOS_PREC_ROUTINE" "IPTOS_RELIABILITY"
"IPTOS_THROUGHPUT" "IPTTLDEC" "IPVERSION" "IP_ADD_MEMBERSHIP"
"IP_DEFAULT_MULTICAST_LOOP" "IP_DEFAULT_MULTICAST_TTL" "IP_DF"
"IP_DROP_MEMBERSHIP" "IP_HDRINCL" "IP_MAXPACKET" "IP_MAX_MEMBER-
SHIPS" "IP_MF" "IP_MSS" "IP_MULTICAST_IF" "IP_MULTICAST_LOOP"
"IP_MULTICAST_TTL" "IP_OPTIONS" "IP_RECVDSTADDR" "IP_RECVOPTS"
"IP_RECVRETOPTS" "IP_RETOPTS" "IP_TOS" "IP_TTL" "MAXTTL"
"MAX_IPOPTLEN" "MINTTL" "SUBNETSHIFT" "pack_sockaddr_in"
"unpack_sockaddr_in"
tags
The following :tags are in %EXPORT_TAGS, with the associated
exportable values as listed:
:sockopts
"IP_HDRINCL" "IP_RECVDSTADDR" "IP_RECVOPTS" "IP_RECVRETOPTS"
"IP_TOS" "IP_TTL" "IP_ADD_MEMBERSHIP" "IP_DROP_MEMBERSHIP"
"IP_MULTICAST_IF" "IP_MULTICAST_LOOP" "IP_MULTICAST_TTL"
"IP_OPTIONS" "IP_RETOPTS"
:routines
"pack_sockaddr_in" "unpack_sockaddr_in" "inet_ntoa"
"inet_aton" "inet_addr" "htonl" "ntohl" "htons" "ntohs"
"ICMP_INFOTYPE" "IN_BADCLASS" "IN_EXPERIMENTAL" "IN_MULTI-
CAST" "IPOPT_CLASS" "IPOPT_COPIED" "IPOPT_NUMBER"
:icmpvalues
"ICMP_ADVLENMIN" "ICMP_ECHO" "ICMP_ECHOREPLY" "ICMP_IREQ"
"ICMP_IREQREPLY" "ICMP_MASKLEN" "ICMP_MASKREPLY"
"ICMP_MASKREQ" "ICMP_MAXTYPE" "ICMP_MINLEN" "ICMP_PARAMPROB"
"ICMP_REDIRECT" "ICMP_REDIRECT_HOST" "ICMP_REDIRECT_NET"
"ICMP_REDIRECT_TOSHOST" "ICMP_REDIRECT_TOSNET" "ICMP_SOURCE-
QUENCH" "ICMP_TIMXCEED" "ICMP_TIMXCEED_INTRANS" "ICMP_TIMX-
CEED_REASS" "ICMP_TSLEN" "ICMP_TSTAMP" "ICMP_TSTAMPREPLY"
"ICMP_UNREACH" "ICMP_UNREACH_HOST" "ICMP_UNREACH_NEEDFRAG"
"ICMP_UNREACH_NET" "ICMP_UNREACH_PORT" "ICMP_UNREACH_PROTO-
COL" "ICMP_UNREACH_SRCFAIL"
:ipoptions
"IPOPT_CIPSO" "IPOPT_CONTROL" "IPOPT_DEBMEAS" "IPOPT_EOL"
"IPOPT_LSRR" "IPOPT_MINOFF" "IPOPT_NOP" "IPOPT_OFFSET"
"IPOPT_OLEN" "IPOPT_OPTVAL" "IPOPT_RESERVED1"
"IPOPT_RESERVED2" "IPOPT_RIPSO_AUX" "IPOPT_RR" "IPOPT_SATID"
"IPOPT_SECURITY" "IPOPT_SECUR_CONFID" "IPOPT_SECUR_EFTO"
"IPOPT_SECUR_MMMM" "IPOPT_SECUR_RESTR" "IPOPT_SECUR_SECRET"
"IPOPT_SECUR_TOPSECRET" "IPOPT_SECUR_UNCLASS" "IPOPT_SSRR"
"IPOPT_TS" "IPOPT_TS_PRESPEC" "IPOPT_TS_TSANDADDR"
"IPOPT_TS_TSONLY" "MAX_IPOPTLEN"
:iptosvalues
"IPTOS_LOWDELAY" "IPTOS_PREC_CRITIC_ECP" "IPTOS_PREC_FLASH"
"IPTOS_PREC_FLASHOVERRIDE" "IPTOS_PREC_IMMEDIATE"
"IPTOS_PREC_INTERNETCONTROL" "IPTOS_PREC_NETCONTROL"
"IPTOS_PREC_PRIORITY" "IPTOS_PREC_ROUTINE" "IPTOS_RELIABIL-
ITY" "IPTOS_THROUGHPUT"
:protocolvalues
"DEFTTL" "INADDR_ALLHOSTS_GROUP" "INADDR_ALLRTRS_GROUP"
"INADDR_ANY" "INADDR_BROADCAST" "INADDR_LOOPBACK"
"INADDR_MAX_LOCAL_GROUP" "INADDR_NONE" "INADDR_UNSPEC_GROUP"
"IN_LOOPBACKNET" "IPPORT_RESERVED" "IPPORT_USERRESERVED"
"IPPORT_DYNAMIC" "IPPROTO_EGP" "IPPROTO_EON" "IPPROTO_GGP"
"IPPROTO_HELLO" "IPPROTO_ICMP" "IPPROTO_IDP" "IPPROTO_IGMP"
"IPPROTO_IP" "IPPROTO_IPIP" "IPPROTO_MAX" "IPPROTO_PUP"
"IPPROTO_RAW" "IPPROTO_RSVP" "IPPROTO_TCP" "IPPROTO_TP"
"IPPROTO_UDP" "IPFRAGTTL" "IPTTLDEC" "IPVERSION" "IP_DF"
"IP_MAXPACKET" "IP_MF" "IP_MSS" "MAXTTL" "MAX_IPOPTLEN"
"MINTTL"
:ipmulticast
"IP_ADD_MEMBERSHIP" "IP_DEFAULT_MULTICAST_LOOP"
"IP_DEFAULT_MULTICAST_TTL" "IP_DROP_MEMBERSHIP" "IP_MAX_MEM-
BERSHIPS" "IP_MULTICAST_IF" "IP_MULTICAST_LOOP" "IP_MULTI-
CAST_TTL"
:deprecated
"IN_CLASSA_HOST" "IN_CLASSA_MAX" "IN_CLASSA_NET"
"IN_CLASSA_NSHIFT" "IN_CLASSA_SUBHOST" "IN_CLASSA_SUBNET"
"IN_CLASSA_SUBNSHIFT" "IN_CLASSB_HOST" "IN_CLASSB_MAX"
"IN_CLASSB_NET" "IN_CLASSB_NSHIFT" "IN_CLASSB_SUBHOST"
"IN_CLASSB_SUBNET" "IN_CLASSB_SUBNSHIFT" "IN_CLASSC_HOST"
"IN_CLASSC_MAX" "IN_CLASSC_NET" "IN_CLASSC_NSHIFT"
"IN_CLASSD_HOST" "IN_CLASSD_NET" "IN_CLASSD_NSHIFT"
"IN_CLASSA" "IN_CLASSB" "IN_CLASSC" "IN_CLASSD" "IPPORT_TIME-
SERVER" "SUBNETSHIFT"
:ALL All of the above exportable items.
NOTES
Anywhere a service or port argument is used above, the allowed syntax
is either a service name, a port number, or a service name with a
caller-supplied default port number. Examples are 'echo', 7, and
'echo(7)', respectively. For a service argument, a bare port number
must be translatable into a service name with getservbyport() or an
error will result. A service name must be translatable into a port
with getservbyname() or an error will result. However, a service name
with a default port number will succeed (by using the supplied default)
even if the translation with getservbyname() fails.
For example:
$obj->setparam('destservice', 'http(80)');
This always succeeds, although if your /etc/services file (or equiva-
lent for non-UNIX systems) maps "http" to something other than port 80,
you'll get that other port.
For a contrasting example:
$obj->setparam('destservice', 80);
This will fail, despite the numeric value, if your /etc/services file
(or equivalent) is behind the times and has no mapping to a service
name for port 80.
THREADING STATUS
This module has been tested with threaded perls, and should be as
thread-safe as perl itself. (As of 5.005_03 and 5.005_57, that's not
all that safe just yet.) It also works with interpreter-based threads
('ithreads') in more recent perl releases.
SEE ALSONet::Gen(3), Net::TCP(3), Net::UDP(3)AUTHOR
Spider Boardman <spidb@cpan.org>
perl v5.8.8 2007-10-29 Net::Inet(3)