.TH IPCALC 1 "Oct 1 2018" "Red Hat, Inc." \" -*- nroff -*-
.SH NAME
ipcalc \- perform simple operations on IP addresses and networks
.SH SYNOPSIS
.B ipcalc
[\fIOPTION\fR]... <\fBIP address\fR>[\fI/prefix\fR] [\fInetmask\fR]

.SH DESCRIPTION
\fBipcalc\fR provides a simple way to calculate IP information for a host
or network. Depending on the options specified, it may be used to provide
IP network information in human readable format, in a format suitable for
parsing in scripts, generate random private addresses, resolve an IP address,
or check the validity of an address.

By default or when the \fB\-\-info\fR or \fB\-\-all\-info\fR parameters
are specified the information provided is free form and human readable. Otherwise,
when specific options are given (e.g., \fB\-\-prefix\fR) the output is
in the VAR=VALUE format.

The various options specify what information \fBipcalc\fR should display
on standard output. Multiple options may be specified.  It is required
to specify an IP address; several operations require
a netmask or a CIDR prefix as well.

.SH OPTIONS
.TP
.TP
\fB\-c\fR, \fB\-\-check\fR
Validate the IP address under the specified family. 

.TP
\fB\-i\fR, \fB\-\-info\fR 
Display generic information on the provided network in human readable format.
This is the default option if no other options are provided.

.TP
\fB\-\-all\-info\fR 
Display verbose information on the provided network and addresses in human
readable format. That includes GeoIP information.

.TP
\fB\-S\fR, \fB\-\-split\fR
Split the provided network using the specified prefix or netmask. That is,
split up the network into smaller chunks of a specified prefix. When
combined with no-decorate mode (\fB\-\-no\-decorate\fR), the split networks
will be printed in raw form.

.TP
\fB\-r\fR, \fB\-\-random-private\fR
Generate a random private address using the supplied prefix or mask. By default
it displays output in human readable format, but may be combined with 
other options (e.g., \fB\-\-network\fR) to display specific information in
VAR=VALUE format.

.TP
\fB\-h\fR, \fB\-\-hostname\fR
Display the hostname for the given IP address.
The variable exposed is HOSTNAME.

.TP
\fB\-h\fR, \fB\-\-lookup-host\fR
Display the IP address for the given hostname.
The variable exposed is ADDRESS.

.TP
\fB\-4\fR, \fB\-\-ipv4\fR
Explicitly specify the IPv4 address family.

.TP
\fB\-6\fR, \fB\-\-ipv6\fR
Explicitly specify the IPv6 address family.

.TP
\fB\-b\fR, \fB\-\-broadcast\fR
Display the broadcast address for the given IP address and netmask.
The variable exposed is BROADCAST (if available).

.TP
\fB\-g\fR, \fB\-\-geoinfo\fR
Display geographic information for the given IP address. This option
requires libGeoIP/libmaxminddb to be available. The variables exposed are
COUNTRYCODE, COUNTRY, CITY and COORDINATES (when available).

.TP
\fB\-m\fR, \fB\-\-netmask\fR
Calculate the netmask for the given IP address. If no mask or prefix
is provided, in IPv6 a 128-bit mask is assumed, while in IPv4 it assumes
that the IP address is in a complete class A, B, or C network. Note, 
however, that many networks no longer use the default netmasks in IPv4.
The variable exposed is NETMASK.

.TP
\fB\-p\fR, \fB\-\-prefix\fR
Show the prefix for the given mask/IP address.
The variable exposed is PREFIX.

.TP
\fB\   \fR \fB\-\-class\-prefix\fR
Assign the netmask of the provided IPv4 address based on the address
class. This was the default in previous versions of this software.

.TP
\fB\-n\fR, \fB\-\-network\fR 
Display the network address for the given IP address and netmask.
The variable exposed is NETWORK.

.TP
\fB\-n\fR, \fB\-\-reverse-dns\fR 
Display the reverse DNS for the given IP address and netmask.
The variable exposed is REVERSEDNS.

.TP
\fB\   \fR \fB\-\-minaddr\fR 
Display the minimum host address in the provided network.
The variable exposed is MINADDR.

.TP
\fB\   \fR \fB\-\-maxaddr\fR 
Display the maximum host address in the provided network.
The variable exposed is MAXADDR.

.TP
\fB\   \fR \fB\-\-addresses\fR 
Display the number of host addresses in the provided network.
The variable exposed is ADDRESSES.

.TP
\fB\   \fR \fB\-\-addrspace\fR 
Display address space allocation information for the provided network.
The variable exposed is ADDRSPACE.

.TP
\fB\   \fR \fB\-\-no\-decorate\fR
Print only the requested information. That when combined with
split networks option, will only print the networks without any
additions for readability.

.TP
\fB\-s\fR, \fB\-\-silent\fR 
Don't ever display error messages.

.SH AUTHORS
.nf
Nikos Mavrogiannopoulos <nmav@redhat.com>
.nf
Erik Troan <ewt@redhat.com>
.nf
Preston Brown <pbrown@redhat.com>
.nf
David Cantrell <dcantrell@redhat.com>


.fi
.SH "REPORTING BUGS"
Report bugs at https://gitlab.com/ipcalc/ipcalc/issues
.SH COPYRIGHT
Copyright \(co 1997-2018 Red Hat, Inc.
.br
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
