|
Packit |
0b51a0 |
About NetAddr::IP
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
At some point a user wrote and asked the difference between
|
|
Packit |
0b51a0 |
NetAddr::IP and NetAddr::IP::Lite
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
NetAddr::IP::Lite contains only "basic" IP address operations to create IP objects,
|
|
Packit |
0b51a0 |
print or return their characteristics, do basic IP arithmetic, etc... a lot of
|
|
Packit |
0b51a0 |
which is implemented in XS in its sub-classes, whereas NetAddr::IP contains complex
|
|
Packit |
0b51a0 |
operations on nets, net ranges , etc... all implemented in perl. If you don't use
|
|
Packit |
0b51a0 |
those, you don't need the overhead of loading them, the autoloader, etc...
|
|
Packit |
0b51a0 |
Likewise, NetAddr::IP::Utilities and NetAddr::IP::InetBase exist to provide
|
|
Packit |
0b51a0 |
"very basic" ipv4 and ipv6 utilities without the overhead of their superclasses
|
|
Packit |
0b51a0 |
for module writers need to work with ipv4 & ipv6 "numbers" but do not need object
|
|
Packit |
0b51a0 |
oriented overhead or functionality.
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
Take a brief look at the SRC of each to see what is supported in each without
|
|
Packit |
0b51a0 |
having to wade through the man pages to figure out where the overlap is.
|
|
Packit |
0b51a0 |
Basically the modules are broken down into these functional areas that cover
|
|
Packit |
0b51a0 |
various aspects of manipulating IP numbers.
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
NetAddr::IP::InetBase mostly XS
|
|
Packit |
0b51a0 |
net to text conversion routines
|
|
Packit |
0b51a0 |
inet_aton
|
|
Packit |
0b51a0 |
inet_ntoa
|
|
Packit |
0b51a0 |
ipv6_aton
|
|
Packit |
0b51a0 |
ipv6_ntoa
|
|
Packit |
0b51a0 |
ipv6_n2x
|
|
Packit |
0b51a0 |
ipv6_n2d
|
|
Packit |
0b51a0 |
inet_any2n
|
|
Packit |
0b51a0 |
inet_n2dx
|
|
Packit |
0b51a0 |
inet_n2ad
|
|
Packit |
0b51a0 |
inet_ntop
|
|
Packit |
0b51a0 |
inet_pton
|
|
Packit |
0b51a0 |
etc...
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
NetAddr::IP::Util adds to above, mostly XS
|
|
Packit |
0b51a0 |
above + ip arithmetic
|
|
Packit |
0b51a0 |
addconst
|
|
Packit |
0b51a0 |
add128
|
|
Packit |
0b51a0 |
sub128
|
|
Packit |
0b51a0 |
bin2bcd
|
|
Packit |
0b51a0 |
bcd2bin
|
|
Packit |
0b51a0 |
ipv4to6
|
|
Packit |
0b51a0 |
mask4to6
|
|
Packit |
0b51a0 |
ipanyto6
|
|
Packit |
0b51a0 |
maskanyto6
|
|
Packit |
0b51a0 |
ipv6to4
|
|
Packit |
0b51a0 |
bin2bcdn
|
|
Packit |
0b51a0 |
bcdn2txt
|
|
Packit |
0b51a0 |
bcdn2bin
|
|
Packit |
0b51a0 |
comp128
|
|
Packit |
0b51a0 |
naip_gethostbyname (platform/socket independent)
|
|
Packit |
0b51a0 |
etc...
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
NetAddr::IP::Lite adds to above
|
|
Packit |
0b51a0 |
mostly 1 or 2 line functions and/or calls to sub classes
|
|
Packit |
0b51a0 |
all the "new" functions
|
|
Packit |
0b51a0 |
all overload functions ( + - ++ -- = print eq ne == > >= < <= cmp)
|
|
Packit |
0b51a0 |
"copy" (clone rather than reference)
|
|
Packit |
0b51a0 |
return of IP parameters such as
|
|
Packit |
0b51a0 |
broadcast
|
|
Packit |
0b51a0 |
network
|
|
Packit |
0b51a0 |
addr
|
|
Packit |
0b51a0 |
mask
|
|
Packit |
0b51a0 |
masklen
|
|
Packit |
0b51a0 |
bits
|
|
Packit |
0b51a0 |
version
|
|
Packit |
0b51a0 |
cidr
|
|
Packit |
0b51a0 |
aton
|
|
Packit |
0b51a0 |
range
|
|
Packit |
0b51a0 |
numeric
|
|
Packit |
0b51a0 |
bigint
|
|
Packit |
0b51a0 |
contains
|
|
Packit |
0b51a0 |
within
|
|
Packit |
0b51a0 |
first
|
|
Packit |
0b51a0 |
last
|
|
Packit |
0b51a0 |
nth
|
|
Packit |
0b51a0 |
num
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
NetAddr::IP adds to above
|
|
Packit |
0b51a0 |
wildcard
|
|
Packit |
0b51a0 |
short
|
|
Packit |
0b51a0 |
full
|
|
Packit |
0b51a0 |
full6
|
|
Packit |
0b51a0 |
splitref
|
|
Packit |
0b51a0 |
split
|
|
Packit |
0b51a0 |
rsplit
|
|
Packit |
0b51a0 |
hostenum
|
|
Packit |
0b51a0 |
compact
|
|
Packit |
0b51a0 |
compactref
|
|
Packit |
0b51a0 |
coalesce
|
|
Packit |
0b51a0 |
re
|
|
Packit |
0b51a0 |
re6
|
|
Packit |
0b51a0 |
|
|
Packit |
0b51a0 |
enjoy...
|