Skip to content

Simplifies IPv4/IPv6 CIDR network prefix management with counting, overlap checking, explanation, and subdivision.

License

Notifications You must be signed in to change notification settings

bschaatsbergen/cidr

Folders and files

NameName
Last commit message
Last commit date
Dec 3, 2023
Dec 3, 2023
Dec 3, 2023
Nov 30, 2023
Dec 3, 2023
Nov 30, 2023
Nov 30, 2023
Dec 2, 2023
Dec 2, 2023
Dec 2, 2023
Sep 8, 2022

Repository files navigation

cidr

Release GitHub release (latest SemVer) GitHub commits since latest release (by SemVer) Go Reference

CLI to perform various actions on CIDR ranges

Brew

To install cidr using brew, simply run:

brew install cidr

Binaries

You can download the latest binary for Linux, MacOS, and Windows.

Examples

Using cidr is very simple.

Check whether an address belongs to a CIDR range

To check if a CIDR range contains an IP:

$ cidr contains 10.0.0.0/16 10.0.14.5
true

This also works with IPv6 addresses, for example:

$ cidr contains 2001:db8:1234:1a00::/106 2001:db8:1234:1a00::
true

Count distinct host addresses

To get all distinct host addresses part of a given CIDR range:

$ cidr count 10.0.0.0/16
65534

This also works with a IPv6 CIDR range, for example:

$ cidr count 2001:db8:1234:1a00::/106
4194302

Or with a large prefix like a point-to-point link CIDR range:

$ cidr count 172.16.18.0/31
2

CIDR range intersection

To check if a CIDR range overlaps with another CIDR range:

$ cidr overlaps 10.0.0.0/16 10.0.14.0/22
true

This also works with IPv6 CIDR ranges, for example:

$ cidr overlaps 2001:db8:1111:2222:1::/80 2001:db8:1111:2222:1:1::/96
true

Contributing

Contributions are highly appreciated and always welcome. Have a look through existing Issues and Pull Requests that you could help with.