Subnet Calc
CIDR/subnet calculator CLI. IPv4 and IPv6 support with no external dependencies.
Quick Start
# Basic subnet calculation
python3 scripts/subnet_calc.py 192.168.1.0/24
# JSON output
python3 scripts/subnet_calc.py 10.0.0.0/8 -f json
# Check if IP is in a network
python3 scripts/subnet_calc.py 172.16.0.0/16 --contains 172.16.5.10
# Split into smaller subnets
python3 scripts/subnet_calc.py 192.168.0.0/22 --split 24
# IPv6
python3 scripts/subnet_calc.py 2001:db8::/32
Output Fields (IPv4)
- CIDR — Normalized CIDR notation
- Network/Broadcast Address — First and last address in the range
- Subnet Mask / Wildcard Mask — Standard and inverted masks
- Total Addresses / Usable Hosts — Address count minus network and broadcast
- First/Last Host — Usable host range
- Binary representations — Network and mask in binary
- Flags — Private, loopback, multicast, link-local detection
Options
| Flag | Description |
|---|---|
-f, --format | plain or json output |
--contains IP | Check if IP is within the network |
--split PREFIX | Split into subnets with given prefix (IPv4) |
Notes
- Python 3 stdlib only (uses
ipaddressmodule) - Handles /31 (RFC 3021 point-to-point) and /32 correctly
- Input is normalized with
strict=False(host bits are masked)