ripcalc
NAME
ripcalc - a tool for network addresses
SYNOPSIS
ripcalc 127.0.0.1
ripcalc -4/--ipv4 127.0.0.1
ripcalc -6/--ipv6 ::1
ripcalc -f/--format "%a/%c\n" 127.0.0.1
ripcalc -m/--mask 28 127.0.0.1
ripcalc -c/--csv path/to/csv [-i/--field network] 127.0.0.1
ripcalc -l/--list 127.0.0.1
ripcalc -a/--available
ripcalc -s/--file [-] 127.0.0.1
ripcalc -e/--encapsulating [-s/--file name]
ripcalc -s/--file name [--inside/--outside] 127.0.0.1
ripcalc -b/--base [8, 10, 16 etc]
ripcalc -d/--divide [CIDR] 127.0.0.1/24
ripcalc -h/--help
DESCRIPTION
ripcalc can read IPv4/IPv6 addresses from command line or standard input and output different formats or associated networks from CSV.
ripcalc can format network addresses, find matches in CSV or process a list.
ripcalc can convert input addresses that are in other number formats such as hex or octal.
Given a list of IP addresses, print only those that match the network. When s
and inside
are used, only addresses from -s
are printed if they are that are inside of the input IP network from the command line. This can be reversed with --outside
, (e.g. ripcalc -s - --inside 192.168.0.0/16
).
When -a
is used, addresses read from -s
will not be shown when listing -l
a network, showing only available addresses.
When --reverse
is used the inputs
, sources
or both can be treated as back-to-front.
ripcalc can return a list of subnets when a network is provided along with the divide argument and a subnet CIDR mask.
When --encapsulating
is used the containing network will be returned.
CSV
Network matches can be returned from a CSV.
$ cat nets.csv
network,range,owner
rfc1918,192.168.0.0/16,bob
rfc1918,172.16.0.0/12,cliff
rfc1918,10.0.0.0/8,mr nobody
$ ripcalc --csv nets.csv -i range --format '%{owner}\n' 192.168.0.0
bob
Addresses can be read via file or from stdin (-):
$ cat list
127.0.0.1/28
10.0.0.1/28
192.168.1.1/30
172.18.1.1/30
10.0.0.0/30
$ ripcalc --csv nets.csv -i range --format '%{range} %{owner}\n' -s list
10.0.0.0/8 mr nobody
192.168.0.0/16 bob
172.16.0.0/12 cliff
10.0.0.0/8 mr nobody
FORMAT
% denotes a format control character, followed by one of the following:
placeholder | effect |
---|---|
%a | IP address string |
%n | Network address string |
%s | Subnet address string |
%w | Wildcard address string |
%b | Broadcast address string |
Additional characters prefixing the above placeholder can control the representation:
placeholder | effect |
---|---|
%B | Binary address string |
%S | Split binary at network boundary string |
%l | Unsigned integer string |
%L | Signed integer string |
%x | Hex address string |
Other format characters:
placeholder | effect |
---|---|
%c | CIDR mask |
%t | Network size |
%r | Network reservation information (if available) |
%d | Matching device interface by IP |
%m | Matching media link interface by network |
%k | RBL-style format |
%% | % |
\n | Line break |
\t | Tab character |
%xa gives the address in hex, or %Sa to return the binary address, split at the network boundary.
When using CSV fields can be matched by name when network matched:
--format '%{name}'
inside/outside
When --inside
or --outside
are given addresses that match --file
are printed. If no matches are found ripcalc
will exit non-zero.