A small collection of networking and security tools I built in Python while studying for the CCNA and getting into cybersecurity. Each project lives in its own folder, runs on a clean Python 3 install, and comes with its own README, unit tests, and an MIT license.
Μια μικρή συλλογή εργαλείων δικτύων & ασφάλειας σε Python, που έφτιαξα ενώ διάβαζα για το CCNA και ξεκινούσα με cybersecurity. Κάθε project είναι σε δικό του φάκελο, τρέχει σε καθαρή εγκατάσταση Python 3, και έχει δικό του README, unit tests και MIT license.
| # | Project | What it does |
|---|---|---|
| 1 | subnet-calculator | IPv4 subnet calculator — network/broadcast/host range/wildcard, plus subnet splitting. Core math done by hand with bit operations. |
| 2 | network-inventory | SSHes into Cisco devices (Netmiko), runs show version, writes a CSV/JSON inventory. |
| 3 | port-scanner | Threaded TCP connect scanner with banner grabbing. Pure sockets + concurrent.futures. |
| 4 | packet-analyzer | Decodes a .pcap capture by hand (pcap → Ethernet → IPv4 → TCP/UDP). No scapy. |
| 5 | log-analyzer | Scans an SSH auth.log and flags brute-force source IPs. |
| 6 | host-discovery | Concurrent ping-sweep of a subnet; lists live hosts with MAC + vendor (OUI) lookup. |
| 7 | ssh-honeypot | Low-interaction SSH honeypot that logs connection attempts as JSON. |
| 8 | tls-checker | Inspects a host's TLS certificate: issuer, SANs, expiry, and warns on expired/expiring certs. |
Most projects use only the Python standard library; only
network-inventoryneeds third-party packages (Netmiko + PyYAML). / Τα περισσότερα projects χρησιμοποιούν μόνο standard library· μόνο τοnetwork-inventoryχρειάζεται εξωτερικά πακέτα (Netmiko + PyYAML).
Every project ships with a unittest suite. To run one locally:
# from inside any project folder
python3 -m unittest -vThis repo uses GitHub Actions (see
.github/workflows/tests.yml). On every push
and pull request, a clean Ubuntu runner checks out the code and runs the test
suites of all eight projects across Python 3.9, 3.10, 3.11 and 3.12. The
green/red badge at the top of this README reflects the result of the latest run,
so anyone can see at a glance that the tests actually pass — on multiple Python
versions, not just my machine.
Because almost everything is standard library, the CI needs no dependency
install step; it just loops over the project folders and runs
python -m unittest in each.
Το repo χρησιμοποιεί GitHub Actions (δες
.github/workflows/tests.yml). Σε κάθε push και
pull request, ένα καθαρό μηχάνημα Ubuntu κατεβάζει τον κώδικα και τρέχει τα tests
και των οκτώ projects σε Python 3.9, 3.10, 3.11 και 3.12. Το πράσινο/
κόκκινο badge στην κορυφή δείχνει το αποτέλεσμα του τελευταίου run, ώστε ο
καθένας να βλέπει αμέσως ότι τα tests περνάνε — σε πολλές εκδόσεις Python, όχι
μόνο στο δικό μου μηχάνημα.
Επειδή σχεδόν τα πάντα είναι standard library, το CI δεν χρειάζεται εγκατάσταση
dependencies· απλώς περνά από κάθε φάκελο και τρέχει python -m unittest.
These deliberately favour understanding over shortcuts — the subnet calculator does the bitwise math itself, and the packet analyzer parses raw headers instead of wrapping scapy. The goal was to actually learn how this stuff works at the byte level, not just to call a library.
Επίτηδες δίνουν έμφαση στην κατανόηση αντί στις συντομεύσεις — ο subnet calculator κάνει μόνος του τα bitwise μαθηματικά, και ο packet analyzer διαβάζει raw headers αντί να τυλίγει το scapy. Ο στόχος ήταν να καταλάβω πραγματικά πώς δουλεύουν αυτά σε επίπεδο byte.
All projects are MIT licensed.