Calculate Network Ranges for a given CIDR (IPv4 and IPv6)
For example, cidit 10.122.33.44/24 prints out the following information:
ip_ver cidr address prefix network first_usable last_usable broadcast available netmask hostmask
v4 10.122.33.44/24 10.122.33.44 24 10.122.33.0 10.122.33.1 10.122.33.254 10.122.33.255CIDR stands for Classless Inter-Domain Routing. Learn more about CIDR here or here.
With Homebrew (recommended)
brew tap hex22a/ciditbrew install ciditCheck out Releases page to find binaries for Your platform
# cidit --help to get more usage info
cidit 10.122.33.44/24cidit 10.122.33.44/24 10.255.55.66/20 2001:db8:1::ab9:c0a8:102/64Output:
ip_ver cidr address prefix network first_usable last_usable broadcast available netmask hostmask
v4 10.122.33.44/24 10.122.33.44 24 10.122.33.0 10.122.33.1 10.122.33.254 10.122.33.255
v4 10.255.55.66/20 10.255.55.66 20 10.255.48.0 10.255.48.1 10.255.63.254 10.255.63.255
v6 2001:db8:1::ab9:c0a8:102/64 2001:db8:1::ab9:c0a8:102 64 2001:db8:1:: 2^64 ffff:ffff:ffff:ffff:: ::ffff:ffff:ffff:ffffcidit -f json 10.122.33.44/24
# Prints: {"version":2,"data":[{"ip_version":"v4","cidr":"10.122.33.44/24","address":"10.122.33.44","prefix_length":24,"first_usable":"10.122.33.1","last_usable":"10.122.33.254","network":"10.122.33.0","broadcast":"10.122.33.255"}]}Pretty print:
cidit -f json -p 10.122.33.44/24Output:
{
"version": 2,
"data": [
{
"ip_version": "v4",
"cidr": "10.122.33.44/24",
"address": "10.122.33.44",
"prefix_length": 24,
"first_usable": "10.122.33.1",
"last_usable": "10.122.33.254",
"network": "10.122.33.0",
"broadcast": "10.122.33.255"
}
]
}ndjson:
cidit 10.122.33.44/24 10.255.55.66/20 2001:db8:1::ab9:c0a8:102/64 -f ndjson
{"ip_version":"v4","cidr":"10.122.33.44/24","address":"10.122.33.44","prefix_length":24,"first_usable":"10.122.33.1","last_usable":"10.122.33.254","network":"10.122.33.0","broadcast":"10.122.33.255"}
{"ip_version":"v4","cidr":"10.255.55.66/20","address":"10.255.55.66","prefix_length":20,"first_usable":"10.255.48.1","last_usable":"10.255.63.254","network":"10.255.48.0","broadcast":"10.255.63.255"}
{"ip_version":"v6","cidr":"2001:db8:1::ab9:c0a8:102/64","address":"2001:db8:1::ab9:c0a8:102","prefix_length":64,"netmask":"ffff:ffff:ffff:ffff::","hostmask":"::ffff:ffff:ffff:ffff","network":"2001:db8:1::","subnet_size":"2^64"}Clone this repo:
git clone git@github.com:hex22a/cidit.git && cd ./ciditRun tests:
cargo testBuild the binary
cargo buildThis will create a binary in target > debug directory