Project 01 / Development notes

Rastro.

A Python CLI for Nmap scans, reports, and snapshot comparison.

A project exploring network tooling and how to turn scan output into useful records.

RASTRO / CLI SESSION05 / Report

The animated walkthrough launches Rastro, selects New scan, discovers and selects a target, runs a Detailed Service Scan, and saves a report and snapshot. All output is demonstration data.

01 /

The implementation.

Nmap handles discovery and scanning. Python parses the XML into host and service objects, then displays results or writes TXT and CSV reports.

Saved JSON snapshots record observations by IP address for later comparison.

Built with

Python / Nmap / etree
Scan execution and XML parsing
EasyMenu3 / pick
Main menu and target selection
psutil / Rich
Interface discovery and progress output
02 /

Why I built it.

I wanted to learn Python while bringing discovery, configurable scans, service identification, and reports into one structured CLI workflow.

V0.1 documents network observations. Broader diagnostics and security assessment are future goals.

03 /

Investigating a slow scan.

One test host took 144.77 seconds in Standard mode. Its 999 filtered ports left Nmap waiting and retrying TCP connections; XML parsing and reporting were not the main bottleneck.

Same host, different scan configurationsMeasured during testing
Standard~1,000 TCP ports
144.77 s
Fast~100 TCP ports
~17 s

Different port counts, not a before-and-after optimization benchmark. The investigation identified where the time was being spent.

04 /

A home-network check.

Workflow example

For a family-network check, a saved scan can help investigate a NAS dashboard that stops opening after an update. Repeating the same scan of that host could show port 80 no longer open and port 443 newly open.

The next steps would be to try HTTPS and inspect the NAS configuration. The comparison narrows the investigation; confirming the configuration establishes the cause.

The useful part here is keeping a baseline and showing the difference in one workflow. Nmap still supplies the underlying observations.

Project notes · V0.1← Back to projects