- Notifications
You must be signed in to change notification settings - Fork0
Powerful CLI toolkit for IP networking calculations, subnet/supernet planning, and CIDR address management. Master IPv4 subnetting, VLSM/FLSM calculations, and route aggregation with ease. Simplifying complex network tasks for engineers, administrators, and students.
License
nazdridoy/SubnetCalculator
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Powerful CLI toolkit for IP networking calculations, subnet/supernet planning, and CIDR address management. Master IPv4 subnetting, VLSM/FLSM calculations, and route aggregation with ease. Simplifying complex network tasks for engineers, administrators, and students.
- Network Information: Display detailed information about any IP network
- VLSM Calculation: Create optimally-sized subnets based on specific host requirements
- FLSM Calculation: Create equal-sized subnets based on either:
- Number of required subnets
- Specific prefix length
- Notation Conversion: Easily convert between:
- CIDR notation (e.g., /24)
- Subnet masks (e.g., 255.255.255.0)
- Wildcard masks (e.g., 0.0.0.255)
- IP Address Utilities: Tools for IP address analysis:
- IP validation and classification
- Check if an IP is within a subnet
- Analyze IP address ranges
- Supernetting/CIDR Aggregation: Efficient route summarization:
- Aggregate multiple networks into optimal CIDR blocks
- Find the smallest common supernet
- Analyze common network prefixes
- Interactive Mode: User-friendly interactive input with command history and editing
- Command-line Mode: Scriptable operation for automation
git clone https://github.com/nazdridoy/SubnetCalculator.gitcd SubnetCalculatorchmod +x subcalc
Display detailed information about a network:
./subcalc --network 192.168.0.0/24
Create equal-sized subnets in two ways:
- By number of subnets:
./subcalc --network 192.168.0.0/24 --flsm 8
- By specific prefix length:
./subcalc --network 192.168.0.0/24 --flsm /28
Create optimally-sized subnets based on host requirements:
./subcalc --network 192.168.0.0/24 --vlsm 50 30 10 5
Run the tool interactively:
./subcalc --flsm# For FLSM calculation./subcalc --vlsm# For VLSM calculation
Convert between CIDR, subnet mask, and wildcard mask notations:
./subcalc --convert /24# Convert from CIDR notation./subcalc --convert 255.255.255.0# Convert from subnet mask notation./subcalc --convert 0.0.0.255# Convert from wildcard mask notation./subcalc --convert# Run in interactive mode
Validate an IP address and display information about it:
./subcalc --validate 192.168.1.1# Validate a specific IP./subcalc --validate# Run in interactive mode
Check if an IP address belongs to a specified network:
./subcalc --check-ip 192.168.1.5 192.168.1.0/24# Check IP in network./subcalc --check-ip 10.0.0.1# Prompt for network./subcalc --check-ip# Fully interactive mode
Calculate information about an IP address range:
./subcalc --range 192.168.1.10 192.168.1.20# Analyze specific range./subcalc --range 10.0.0.1# Prompt for end IP./subcalc --range# Fully interactive mode
Aggregate multiple subnets into optimal summary routes:
# Find efficient summary routes for multiple networks./subcalc --supernet 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24# Run in interactive mode./subcalc --supernet
usage: subcalc [-h] [--network NETWORK] [--vlsm [VLSM ...]] [--flsm [FLSM]] [--convert [CONVERT]] [--validate [VALIDATE]] [--check-ip [CHECK_IP ...]] [--range [RANGE ...]] [--supernet [SUPERNET ...]]Subnet Calculator Tool - Calculate and display subnet informationoptions: -h, --help show this help message and exit --network NETWORK Base network address in CIDR notation (e.g., 192.168.0.0/24) --vlsm [VLSM ...] Run Variable Length Subnet Mask calculator with specified host requirements (e.g., --vlsm 20 40 80) --flsm [FLSM] Run Fixed Length Subnet Mask calculator with either number of subnets (e.g., --flsm 4) or target prefix length (e.g., --flsm /28) --convert [CONVERT] Convert between CIDR notation, subnet masks, and wildcard masks (e.g., --convert /24 or --convert 255.255.255.0) --validate [VALIDATE] Validate an IP address and show its properties (e.g., --validate 192.168.1.1) --check-ip [CHECK_IP ...] Check if an IP address is in a network (e.g., --check-ip 192.168.1.5 192.168.1.0/24) --range [RANGE ...] Analyze an IP address range (e.g., --range 192.168.1.10 192.168.1.20) --supernet [SUPERNET ...] Find optimal summary routes for multiple subnets (e.g., --supernet 192.168.1.0/24 192.168.2.0/24)Examples: ./subcalc --network 192.168.0.0/24 # Display network summary ./subcalc --network 192.168.0.0/24 --flsm 16 # Create 16 equal-sized subnets ./subcalc --network 192.168.0.0/24 --flsm /28 # Create subnets with prefix /28 ./subcalc --network 192.168.0.0/24 --vlsm 20 40 50 # Create subnets with specified host capacities ./subcalc --flsm # Run FLSM in interactive mode ./subcalc --vlsm # Run VLSM in interactive mode ./subcalc --convert /24 # Convert between CIDR, subnet mask, and wildcard mask ./subcalc --convert 255.255.255.0 # Convert between notations using subnet mask ./subcalc --convert # Run conversion tool in interactive mode ./subcalc --validate 192.168.1.5 # Validate an IP address and display information ./subcalc --check-ip 192.168.1.5 192.168.1.0/24 # Check if an IP address is in a network ./subcalc --range 192.168.1.10 192.168.1.20 # Analyze an IP address range ./subcalc --supernet 192.168.1.0/24 192.168.2.0/24 # Find optimal summary routes for multiple subnets ./subcalc --supernet # Run supernetting tool in interactive modeNetwork Summary for 192.168.0.0/24:Network Address: 192.168.0.0Broadcast Address: 192.168.0.255Netmask: 255.255.255.0Prefix Length: /24Number of Addresses: 256Usable Hosts: 254First Usable Host: 192.168.0.1Last Usable Host: 192.168.0.254FLSM Summary:Base Network: 192.168.0.0/24Subnet Bits: 2New Prefix Length: /26Subnet Mask: 255.255.255.192Hosts per Subnet: 62Requested Subnets: 4Actual Subnets: 4Unused Subnets: 0+----------+------------------+-----------------+---------------+---------------+---------------+---------------+-------+| Subnet | CIDR Notation | Subnet Mask | Network ID | Broadcast ID | First Host IP | Last Host IP | Hosts |+----------+------------------+-----------------+---------------+---------------+---------------+---------------+-------+| Subnet 1 | 192.168.0.0/26 | 255.255.255.192 | 192.168.0.0 | 192.168.0.63 | 192.168.0.1 | 192.168.0.62 | 62 |+----------+------------------+-----------------+---------------+---------------+---------------+---------------+-------+| Subnet 2 | 192.168.0.64/26 | 255.255.255.192 | 192.168.0.64 | 192.168.0.127 | 192.168.0.65 | 192.168.0.126 | 62 |+----------+------------------+-----------------+---------------+---------------+---------------+---------------+-------+| Subnet 3 | 192.168.0.128/26 | 255.255.255.192 | 192.168.0.128 | 192.168.0.191 | 192.168.0.129 | 192.168.0.190 | 62 |+----------+------------------+-----------------+---------------+---------------+---------------+---------------+-------+| Subnet 4 | 192.168.0.192/26 | 255.255.255.192 | 192.168.0.192 | 192.168.0.255 | 192.168.0.193 | 192.168.0.254 | 62 |+----------+------------------+-----------------+---------------+---------------+---------------+---------------+-------+...+------------------+-----------------+---------------+---------------+---------------+---------------+--------------+-------------+| Subnet | Subnet Mask | Network ID | Broadcast ID | First Host IP | Last Host IP | Needed Hosts | Total Hosts |+------------------+-----------------+---------------+---------------+---------------+---------------+--------------+-------------+| 192.168.0.0/25 | 255.255.255.128 | 192.168.0.0 | 192.168.0.127 | 192.168.0.1 | 192.168.0.126 | 100 | 126 |+------------------+-----------------+---------------+---------------+---------------+---------------+--------------+-------------+| 192.168.0.128/26 | 255.255.255.192 | 192.168.0.128 | 192.168.0.191 | 192.168.0.129 | 192.168.0.190 | 50 | 62 |+------------------+-----------------+---------------+---------------+---------------+---------------+--------------+-------------+| 192.168.0.192/27 | 255.255.255.224 | 192.168.0.192 | 192.168.0.223 | 192.168.0.193 | 192.168.0.222 | 25 | 30 |+------------------+-----------------+---------------+---------------+---------------+---------------+--------------+-------------+| 192.168.0.224/28 | 255.255.255.240 | 192.168.0.224 | 192.168.0.239 | 192.168.0.225 | 192.168.0.238 | 10 | 14 |+------------------+-----------------+---------------+---------------+---------------+---------------+--------------+-------------+...Notation Conversion Results:CIDR Notation: /24Subnet Mask: 255.255.255.0Wildcard Mask: 0.0.0.255Binary Mask: 11111111.11111111.11111111.00000000Hex Mask: FFFFFF00Network Bits: 24Host Bits: 8Max Addresses: 256Usable Hosts: 254IP Address Analysis Results:IP Address: 192.168.1.5Valid IPv4: TrueAddress Type: Private AddressBinary Form: 11000000.10101000.00000001.00000101Hex Form: C0A80105Decimal Form: 3232235781Octet Values: 192 | 168 | 1 | 5Address Class: Class C (192-223)Network Info:Address is in the private range 192.168.0.0/16 (RFC1918)Address is unicast (host to host communication)IP Network Membership Check:IP Address: 192.168.1.5Network: 192.168.1.0/24Is IP in Network: TrueNetwork Details:Network Address: 192.168.1.0Broadcast Address: 192.168.1.255Subnet Mask: 255.255.255.0Prefix Length: /24Total Addresses: 256Usable Hosts: 254First Usable Host: 192.168.1.1Last Usable Host: 192.168.1.254Host Position Details:Position in Network: 5 (starting from 0)Position from End: 250 (to broadcast)IP Range Analysis:Start IP: 192.168.1.10End IP: 192.168.1.20Total Addresses: 11Optimal CIDR Block Representation: Block 1: 192.168.1.10/31 (2 addresses) Block 2: 192.168.1.12/30 (4 addresses) Block 3: 192.168.1.16/30 (4 addresses) Block 4: 192.168.1.20/32 (1 addresses)Supernetting Results:Input Networks (3): 1. 192.168.1.0/24 (256 addresses) Binary: 11000000.10101000.00000001.00000000 Prefix: 11111111.11111111.11111111.00000000 2. 192.168.2.0/24 (256 addresses) Binary: 11000000.10101000.00000010.00000000 Prefix: 11111111.11111111.11111111.00000000 3. 192.168.3.0/24 (256 addresses) Binary: 11000000.10101000.00000011.00000000 Prefix: 11111111.11111111.11111111.000000001. Efficient Aggregation (Multiple Blocks) Result: 2 CIDR block(s) Block 1: 192.168.1.0/24 (256 addresses) Binary: 11000000.10101000.00000001.00000000 Prefix: 11111111.11111111.11111111.00000000 Block 2: 192.168.2.0/23 (512 addresses) Binary: 11000000.10101000.0000001|0.00000000 Prefix: 11111111.11111111.11111110.00000000 Total Addresses: 7682. Single Supernet (Summary Route) Result: 192.168.0.0/22 (1024 addresses) Binary: 11000000.10101000.000000|00.00000000 Prefix: 11111111.11111111.11111100.00000000 Address Waste: 256 addresses (25.0%)3. Common Prefix Analysis Common Prefix: 22 bits Common Network: 192.168.0.0/22 Prefix Mask: NNNNNNNN.NNNNNNNN.NNNNNNHH.HHHHHHHH N = Network bits (match), H = Host bits (vary) Binary Form: 11000000.10101000.00000000.00000000 Address Range: 192.168.0.0 - 192.168.3.255 Total Range: 1024 addressesContributions, issues, and feature requests are welcome!
This project is licensed under the MIT License. See theLICENSE file for details.
About
Powerful CLI toolkit for IP networking calculations, subnet/supernet planning, and CIDR address management. Master IPv4 subnetting, VLSM/FLSM calculations, and route aggregation with ease. Simplifying complex network tasks for engineers, administrators, and students.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
