IPCALC(1)

NAME
ipcalc - Perform simple operations on IP addresses and networks

SYNOPSIS
ipcalc [OPTION]... IP address[/prefix] [netmask]

Description
ipcalc 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 --info or --all-info parameters are specified the information provided is free form and human readable. Otherwise the output is JSON formatted when -j is specified, or when specific options are given (e.g., --prefix) the output is in the VAR=VALUE format.

The various options specify what information ipcalc 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.

Options

○   -c, --check Validate the IP address under the specified family.

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

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

○   -S, --split 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 (--no-decorate), the split networks will be printed in raw form. Example "ipcalc -S 26 192.168.1.0/24".

○   -d, --deaggregate Deaggregates the provided address range. That is, print the networks that cover the range. The range is given using the '-' separator, e.g., "192.168.1.3-192.168.1.23". When combined with no-decorate mode (--no-decorate), the networks are printed in raw form.

○   -r, --random-private 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., --network) to display specific information in VAR=VALUE format.

○   -h, --hostname Display the hostname for the given IP address. The variable exposed is HOSTNAME.

○   -o, --lookup-host Display the IP address for the given hostname. The variable exposed is ADDRESS.

○   -4, --ipv4 Explicitly specify the IPv4 address family.

○   -6, --ipv6 Explicitly specify the IPv6 address family.

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

○   -a, --address Display the IP address for the given input. The variable exposed is ADDRESS (if available).

○   -g, --geoinfo 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).

○   -m, --netmask 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.

○   -p, --prefix Show the prefix for the given mask/IP address. The variable exposed is PREFIX.

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

○   -n, --network Display the network address for the given IP address and netmask. The variable exposed is NETWORK.

○   --reverse-dns Display the reverse DNS for the given IP address and netmask. The variable exposed is REVERSEDNS.

○   --minaddr Display the minimum host address in the provided network. The variable exposed is MINADDR.

○   --maxaddr Display the maximum host address in the provided network. The variable exposed is MAXADDR.

○   --addresses Display the number of host addresses in the provided network. The variable exposed is ADDRESSES.

○   --addrspace Display address space allocation information for the provided network. The variable exposed is ADDRSPACE.

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

○   -j, --json When used with -i or -S, print the info as a JSON object instead of the usual output format.

○   -s, --silent Don't ever display error messages.

Examples

  Display all information of an IPv4
``` $ ipcalc --all-info 193.92.150.2/24 Address: 193.92.150.2 Network: 193.92.150.0/24 Netmask: 255.255.255.0 = 24 Broadcast: 193.92.150.255 Reverse DNS: 150.92.193.in-addr.arpa.

Address space: Internet Address class: Class C HostMin: 193.92.150.1 HostMax: 193.92.150.254 Hosts/Net: 254

Country code: GR Country: Greece ```

  Display information in key-value format
$ ipcalc -pnmb --minaddr --maxaddr --geoinfo --addrspace 193.92.150.2/255.255.255.224 NETMASK=255.255.255.224 PREFIX=27 BROADCAST=193.92.150.31 NETWORK=193.92.150.0 MINADDR=193.92.150.1 MAXADDR=193.92.150.30 ADDRSPACE="Internet" COUNTRY="Greece"

  Display all information of an IPv6
``` $ ipcalc --all-info 2a03:2880:20:4f06:face:b00c:0:14/64 Full Address: 2a03:2880:0020:4f06:face:b00c:0000:0014 Address: 2a03:2880:20:4f06:face:b00c:0:14 Full Network: 2a03:2880:0020:4f06:0000:0000:0000:0000/64 Network: 2a03:2880:20:4f06::/64 Netmask: ffff:ffff:ffff:ffff:: = 64 Reverse DNS: 6.0.f.4.0.2.0.0.0.8.8.2.3.0.a.2.ip6.arpa.

Address space: Global Unicast HostMin: 2a03:2880:20:4f06:: HostMax: 2a03:2880:20:4f06:ffff:ffff:ffff:ffff Hosts/Net: 2^(64) = 18446744073709551616

Country code: IE Country: Ireland ```

  Display JSON output
$ ipcalc --all-info -j 2a03:2880:20:4f06:face:b00c:0:14/64 { "FULLADDRESS":"2a03:2880:0020:4f06:face:b00c:0000:0014", "ADDRESS":"2a03:2880:20:4f06:face:b00c:0:14", "FULLNETWORK":"2a03:2880:0020:4f06:0000:0000:0000:0000", "NETWORK":"2a03:2880:20:4f06::", "NETMASK":"ffff:ffff:ffff:ffff::", "PREFIX":"64", "REVERSEDNS":"6.0.f.4.0.2.0.0.0.8.8.2.3.0.a.2.ip6.arpa.", "ADDRSPACE":"Global Unicast", "MINADDR":"2a03:2880:20:4f06::", "MAXADDR":"2a03:2880:20:4f06:ffff:ffff:ffff:ffff", "ADDRESSES":"18446744073709551616", "COUNTRYCODE":"IE", "COUNTRY":"Ireland", "COORDINATES":"53.000000,-8.000000" }

  Lookup of a hostname
$ ipcalc --lookup-host localhost --no-decorate ::1

  IPv4 lookup of a hostname
$ ipcalc --lookup-host localhost --no-decorate -4 127.0.0.1

  Reverse lookup of a hostname
$ ipcalc -h 127.0.0.1 --no-decorate localhost

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

Reporting Bugs
Report bugs at https://gitlab.com/ipcalc/ipcalc/issues

Copyright
Copyright © 1997-2020 Red Hat, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.