ripcalc - a tool for network addresses
Contents
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
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---inside192.168.0.0/16).
When -a is used, addresses read from -s will not be shown when listing -l a network, showing only avail‐
able 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 sub‐
net CIDR mask.
When --encapsulating is used the containing network will be returned.
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 net‐
work
%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.
Name
ripcalc - a tool for network addresses
Synopsis
ripcalc127.0.0.1ripcalc-4/--ipv4127.0.0.1ripcalc-6/--ipv6::1ripcalc-f/--format“%a/%c”127.0.0.1ripcalc-m/--mask28127.0.0.1ripcalc-c/--csvpath/to/csv[-i/--fieldnetwork]127.0.0.1ripcalc-l/--list127.0.0.1ripcalc-a/--availableripcalc-s/--file[-]127.0.0.1ripcalc-e/--encapsulating[-s/--filename]ripcalc-s/--filename[--inside/--outside]127.0.0.1ripcalc-b/--base[8,10,16etc]ripcalc-d/--divide[CIDR]127.0.0.1/24ripcalc-h/--help
