nettoolkit

GITHUB

a small command-line + GUI toolkit for practicing core networking concepts -- built while learning networking and Git/GitHub

About

Four commands, each mapped to a concept that shows up constantly in network engineering work and interviews. No external dependencies -- everything runs on the Python standard library, so it works without admin/root privileges (it shells out to the OS ping/arp/tracert tools instead of crafting raw packets).

subnetIP addressing, CIDR notation, VLSM
scanARP, ICMP, DNS -- how host discovery actually works on a LAN
portscanthe TCP three-way handshake and well-known ports
tracerouteTTL and how routers report path information via ICMP
Commands

subnet -- CIDR / VLSM calculator

Network address, broadcast, netmask, wildcard mask, usable host range and count. --split breaks a block into smaller subnets, VLSM-style -- the same math used to carve an office network into per-department ranges. Live version below.

python -m nettoolkit subnet 10.0.0.0/24 --split 26

scan -- LAN device discovery

Ping-sweeps every address in a range, cross-references the OS ARP cache for MAC addresses, and reverse-DNS-resolves hostnames -- a lightweight version of nmap -sn. Only meaningful run against a network you're actually on, so it isn't hosted here (see note below).

python -m nettoolkit scan 192.168.1.0/24 --ports common

portscan -- TCP connect scan

Attempts a full TCP handshake against each port and reports which accepted a connection, with well-known service names. --csv exports every result for the pandas/matplotlib analytics pass.

python -m nettoolkit portscan example.com --ports 1-1024

traceroute -- path discovery

Wraps the OS traceroute tool to show each hop between you and a destination, keeping the tool dependency-free and privilege-free.

python -m nettoolkit traceroute 8.8.8.8
The GUI (python -m nettoolkit.gui) is a Tkinter desktop app with one animated tab per command above -- it calls the exact same modules as the CLI, nothing about the scans themselves is simulated, only the presentation.
Subnet Calculator -- live, IPv4
This is a straight JS port of the exact logic in nettoolkit/subnetcalc.py -- same math as the CLI and GUI, just running in your browser instead of Python. scan, portscan, and traceroute aren't hosted here: LAN Scan only makes sense against the network you're actually on (run from this cloud server it would scan the server's own cloud network, not yours), and running arbitrary port scans/traceroutes from a shared cloud IP risks the host's abuse policy -- both are things to run locally, which is exactly what the CLI/GUI are for.