| | 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... |
---|
| | |
---|
| | |