An interactive web application that computes and visualizes Variable Length Subnet Masking (VLSM) addressing plans. Built with Python and Streamlit, it takes a base network and a list of host requirements, then outputs an optimized subnetting plan.
Personal project — built to practice networking concepts and web app development with Streamlit
- Input: base network address (e.g.,
192.168.1.0/24) and host requirements per subnet - Automatic VLSM calculation with optimal subnet allocation
- Visual representation of the addressing plan
- Subnet details: network address, broadcast, usable range, mask, CIDR notation
- Interactive Streamlit web interface — no installation needed for end users
VLSM allows subnets of different sizes within the same network, unlike fixed-length subnetting. The algorithm:
- Sorts subnets by size (largest first)
- Allocates the smallest power-of-2 block that fits each requirement
- Assigns network addresses sequentially to avoid overlap
| Component | Technology |
|---|---|
| Language | Python |
| Web framework | Streamlit |
| Networking | ipaddress (stdlib) |
git clone https://github.com/AmZzPYJS/VLSM-Calculator-and-Vizualisation-Python.git
cd VLSM-Calculator-and-Vizualisation-Python
pip install -r requirements.txt
streamlit run app.py- Implementing VLSM subnetting logic from scratch using Python's
ipaddressmodule - Building interactive web applications with Streamlit (widgets, layouts, session state)
- Translating networking theory (subnet masks, CIDR, broadcast addresses) into working code
- Designing a user-friendly interface for a technical tool
MIT