SIPCALC(1) SIPCALC(1)
NAME
sipcalc - IP subnet calculator
SYNOPSIS
sipcalc [ -abcdehiInrsStuvx46 ] <[ADDRESS] [INTERFACE] ...
| [ - ]>
DESCRIPTION
Sipcalc is an ip subnet calculator consisting of two
parts. A plain textbased console version, and web (cgi)
based counterpart. This manpage only addresses the con-
sole based version. Sipcalc, in it's simplest form takes
an ip-address and a subnet mask on the commandline and
outputs information about the subnet. Sipcalc has support
for both IPv4 and IPv6 addresses.
Sipcalc can take input in three forms, an ip-address/net-
mask, an interface or via stdin using the special charac-
ter -.
Address-IPv4
Address must be given in the "standard" dotted quad
format, ie.: xxx.xxx.xxx.xxx and prepended with a
netmask the can be given in three different ways:
- CIDR, ex. /n where n >= 0 <= 32.
- Dotted quad, ex. xxx.xxx.xxx.xxx.
- A hex value, ex 0xnnnnnnnn or nnnnnnnn.
Address-IPv6
Addresses may be given in any of the forms defined
in RFC2373, the netmask (prefix) must be given in
CIDR notion. Valid values for the netmask range
from n >= 0 <= 128, default value if netmask is
omitted is 128.
Interface
Instead of taking address information from the com-
mandline sipcalc can obtain relevant information
by looking at a specified interface on the system.
Sipcalc then uses this information to calculate
output values. This option is currently only avail-
able for IPv4 addresses, work is being done to sup-
port IPv6 here also.
- Further arguments will be read from stdin, this can
be useful for example for cat(1) ing a list of
addresses stored in a file to sipcalc. Each line
sent to sipcalc should contain one address/netmask
or interface.
Any number/combination of Address and Interface arguments
can exist on the commandline, however, the special charac-
ter - must be the first argument or it will be parsed as
an interface. All options following the - character will
be discarded.
Features (IPv4) -
* Multiple address and netmask input formats.
* Retrieving of address information from interfaces.
* Classfull and CIDR output.
* Multiple address and netmask output formats (dotted
quad, hex, number of bits).
* Output of broadcast address, network class, Cisco
wildcard, hosts/range, network range.
* Output of multiple types of bitmaps.
* Output of a userdefined number of extra networks.
* Multiple networks input from commandline.
* DNS resolutions of hostnames.
* Parsing of a newline seperated list of networks
from standard input (STDIN).
* The ability to "split" a network based on a smaller
netmask, also with recursive runs on the generated
subnets.
Features (IPv6) -
* Compressed and expanded input addresses.
* Compressed and expanded output.
* Standard IPv6 network output.
* v4 in v6 output.
* Reverse dns address generation.
* DNS resolutions of hostnames.
* The ability to "split" a network based on a smaller
netmask, also with recursive runs on the generated
subnets.
Output.
Sipcalc output is divided into sections and subsections.
Each section starts with the string "-[type : INPUT] - n"
where type can be one of int-ipv4, ipv6, ipv4. INPUT is
one input option from the commandline and n is the number
of the section that this input option has produced cur-
rently displayed. Currently the only input option that
produces multiple output sections is an interface with
multiple addresses. A subsection starts with the string
"[IDENTIFIER]", where IDENTIFIER is an identifier for the
subsection type. The subsection types are based on the
used commandline options. Sections always en with the
single character '-' alone on a line. Worth mentioning is
also that sections can include not only subsections, but
also other sections, this currently only happen when the
-u and -s/-S options are used. Warnings/errors etc. can
also be displayed in the form -[type : message].
Description of common output:
[IPv4]
Host address
The given host address.
Network address
The first address in a given range, unusable for
hosts under normal conditions.
Network mask
The network mask (netmask) used to specify the size
of a given subnet, usually represented in three
different formats: dotted quad (xxx.xxx.xxx.xxx)
hex (0xnnnnnnnn) bits (/n where n >= 0 <= 32)
Broadcast address
The broadcast address of a given subnet, usually
the last address in a range.
Cisco wildcard
The inverted value of the netmask (netmask ^
0xffffffff). This value is commonly used in for
example access-lists on routers.
Addresses in network
The number of addresses in the given subnet.
Network range
The full subnet range.
Usable range
The range in the given subnet that is commonly used
for normal hosts.
[IPv6]
Expanded Address
The full expanded IPv6 address.
Compressed address
The IPv6 address compressed in the most efficient
way possible.
Subnet prefix
The prefix of the address (in relation to the net-
mask), the suffix of the address is zeroed out.
Address ID
The suffix of the address (in relation to the net-
mask), the prefix of the address is zeroed out.
Prefix address
The IPv6 equivalent of the IPv4 netmask.
Prefix length
Number of bits set in the netmask.
Address type
The address type as defined in RFC2373.
Comment
Some addresses will have comments from the author.
Network range
The start and end addresses of the subnet.
Expanded v4inv6 address
The full expanded IPv6 address in v4inv6 format.
Compr. v4inv6 address
The compressed IPv6 address in v4inv6 format.
Reverse DNS
The address in IPv6 reverse DNS form.
OPTIONS
-a --all
Give all possible information about an adress or
interface, this is equivalent to giving the flags
-b -c -i -n 0 for IPv4 and -e -r -t for IPv6.
-b --cidr-bitmap (IPv4)
Display CIDR based bitmaps.
-c --classfull-addr (IPv4)
Display classfull address information.
-d --resolve
Enable name resolution.
-e --v4inv6 (IPv6)
Display v4inv6 address information.
-h --help
Display the commandline help.
-i --cidr-addr (default IPv4)
Display CIDR address information.
-I, --addr-int=INT
Explicitly add an interface. This can be used to
circumvent the sipcalc "smart parsing" of
addresses/interfaces on the commandline. This can
be useful if you for example for some reason have
an interface with the same name as an actual
address, eg. 127.0.0.1 or ::1 etc. See also: -4
-6.
-n --subnets=NUM
Display NUM extra subnets (starting from the cur-
rent subnet). Will display all subnets in the cur-
rent /24 if NUM is 0.
-r --v6rev (IPv6)
Display IPv6 reverse DNS information.
-s --v4split=MASK (IPv4)
Split the current network into subnets of MASK
size. MASK can be given in dotted quad, hex or CIDR
form.
-S, --v6split=MASK (IPv6)
Split the current network into subnets of MASK
size. MASK must be given in CIDR form, either with
or with the '/' character.
-t, --v6-standard (default IPv6)
Display IPv6 address information.
-u, --split-verbose
This will put network splitting into verbose mode.
This means that all the subnets generated when
splitting a network will be passed back to sipcalc
for explicit parsing giving the same output as if
the address had been given on the commandline. All
options passed to sipcalc on the commandline will
also be inherited when the subnet is passed back to
sipcalc for parsing, with one exception, the -s/-S
flag, we don't want an endless loop. Sending only
the -s/-S and -u flags to sipcalc will give the
default output (-i for ipv4 and -t for ipv6).
-v --version
Display version information.
-x --classful-bitmap (IPv6)
Display a classfull bitmap.
-4, --addr-ipv4=ADDR
Explicitly add an IPv4 address. See also: -I -6.
-6, --addr-ipv6=ADDR
Explicitly add an IPv6 address. See also: -I -4.
BUGS
Probably lots. Known missing features include getting
IPv6 addresses from interfaces and implementing the -n
option for IPv6 addresses. Please send any bugs, feature
requests, patches, comments etc. to simon@routemeis-
ter.net.
URL
Sipcalc can be downloaded from http://www.routemeis-
ter.net/
AUTHOR
Simon Ekstrand simon@routemeister.net
19 January 2002 SIPCALC(1)