Cidr
Simplifies IPv4/IPv6 CIDR network prefix management with counting, overlap checking, explanation, and subdivision.
Install / Use
/learn @bschaatsbergen/CidrREADME
cidr
Simplifies IPv4/IPv6 CIDR network prefix management with counting, overlap checking, explanation, and subdivision.
Brew
To install cidr using brew, simply run:
brew install cidr
Debian (Trixie and newer) & Ubuntu (Oracular and newer)
To install cidr using apt, simply run:
apt install cidr
Binaries
You can download the latest binary for Linux, MacOS, and Windows.
Examples
Using cidr is very simple.
Explain a CIDR range
To get more information on a CIDR range:
$ cidr explain 10.0.0.0/16
Base Address: 10.0.0.0
Usable Address Range: 10.0.0.1 to 10.0.255.254 (65,534)
Broadcast Address: 10.0.255.255
Addresses: 65,536
Netmask: 255.255.0.0 (/16 bits)
This also works with IPv6 CIDR ranges, for example:
$ cidr explain 2001:db8:1234:1a00::/110
Base Address: 2001:db8:1234:1a00::
Usable Address Range: 2001:db8:1234:1a00:: to 2001:db8:1234:1a00::3:ffff (262,142)
Addresses: 262,144
Netmask: ffff:ffff:ffff:ffff:ffff:ffff:fffc:0 (/110 bits)
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
To get a count of all addresses in a CIDR range:
$ cidr count 10.0.0.0/16
65536
This also works with a IPv6 CIDR range, for example:
$ cidr count 2001:db8:1234:1a00::/106
4194304
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
CIDR division
To divide a CIDR range into N distinct networks:
$ cidr divide 10.0.0.0/16 9
10.0.0.0/20
10.0.16.0/20
10.0.32.0/20
10.0.48.0/20
10.0.64.0/20
10.0.80.0/20
10.0.96.0/20
10.0.112.0/20
10.0.128.0/20
This also works with IPv6 CIDR ranges, for example:
$ cidr divide 2001:db8:1111:2222:1::/80 9
2001:db8:1111:2222:1::/84
2001:db8:1111:2222:1:1000::/84
2001:db8:1111:2222:1:2000::/84
2001:db8:1111:2222:1:3000::/84
2001:db8:1111:2222:1:4000::/84
2001:db8:1111:2222:1:5000::/84
2001:db8:1111:2222:1:6000::/84
2001:db8:1111:2222:1:7000::/84
2001:db8:1111:2222:1:8000::/84
Contributing
Contributions are highly appreciated and always welcome. Have a look through existing Issues and Pull Requests that you could help with.
Related Skills
node-connect
334.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.1kCommit, push, and open a PR
