dwww Home | Show directory contents | Find package

About NetAddr::IP

At some point a user wrote and asked the difference between 
NetAddr::IP and NetAddr::IP::Lite

NetAddr::IP::Lite contains only "basic" IP address operations to create IP objects, 
print or return their characteristics, do basic IP arithmetic, etc... a lot of 
which is implemented in XS in its sub-classes, whereas NetAddr::IP contains complex 
operations on nets, net ranges , etc... all implemented in perl. If you don't use 
those, you don't need the overhead of loading them, the autoloader, etc... 
Likewise, NetAddr::IP::Utilities and NetAddr::IP::InetBase exist to provide 
"very basic" ipv4 and ipv6 utilities without the overhead of their superclasses 
for module writers need to work with ipv4 & ipv6 "numbers" but do not need object 
oriented overhead or functionality. 

Take a brief look at the SRC of each to see what is supported in each without 
having to wade through the man pages to figure out where the overlap is. 
Basically the modules are broken down into these functional areas that cover 
various aspects of manipulating IP numbers.

NetAddr::IP::InetBase mostly XS
net to text conversion routines
        inet_aton
        inet_ntoa
        ipv6_aton
        ipv6_ntoa
        ipv6_n2x
        ipv6_n2d
        inet_any2n
        inet_n2dx
        inet_n2ad
        inet_ntop
        inet_pton
        etc...

NetAddr::IP::Util adds to above, mostly XS
         above + ip arithmetic
        addconst
        add128
        sub128
        bin2bcd
        bcd2bin
        ipv4to6
        mask4to6
        ipanyto6
        maskanyto6
        ipv6to4
        bin2bcdn
        bcdn2txt
        bcdn2bin
        comp128
        naip_gethostbyname (platform/socket independent)
        etc...

NetAddr::IP::Lite adds to above
mostly 1 or 2 line functions and/or calls to sub classes
        all the "new" functions
        all overload functions ( + - ++ -- = print eq ne == > >= < <= cmp)
          "copy"  (clone rather than reference)
  return of IP parameters such as
          broadcast
          network
          addr
          mask
          masklen
          bits
          version
          cidr
          aton
          range
          numeric
          bigint
          contains
          within
          first
          last
          nth
          num

NetAddr::IP adds to above
          wildcard
          short
          full
          full6
          splitref
          split
          rsplit
          hostenum
          compact
          compactref
          coalesce
          re
          re6

enjoy...

Generated by dwww version 1.14 on Sat Sep 6 03:10:01 CEST 2025.