Skip to content

A Python-based multi-threaded network scanner with a simple GUI for scanning individual hosts or entire subnets. Features include real-time scan progress, banner grabbing, basic vulnerability signature checks, and visual graphs showing open ports.

Notifications You must be signed in to change notification settings

JosephJonathanFernandes/advanced-port-scanner

Repository files navigation

Enterprise-Grade Python Port & Subnet Scanner

Overview

This project is a modular, production-ready network scanner with a modern GUI, designed for security professionals, engineers, and open-source contributors. It supports single host and subnet (CIDR) scanning, real-time feedback, banner analysis, and secure, extensible architecture.


Problem Statement

Modern organizations require fast, reliable, and secure tools to audit network ports and services. This scanner provides a professional, open-source solution with a focus on code quality, security, and extensibility.


Architecture

  • src/: Core scanning logic, modularized by responsibility
  • config/: Configuration and environment setup
  • tests/: Unit and integration tests
  • docs/: Architecture, contributing, changelog, security
  • scripts/: Automation and utilities
  • results/: Scan outputs (log, CSV, JSON, graphs)

See docs/ARCHITECTURE.md for details.


Tech Stack

  • Python 3.x
  • Tkinter (GUI)
  • Matplotlib (visualization)
  • Pillow (image handling)
  • Standard Library (threading, socket, ipaddress, etc.)

Features

  • Multi-threaded port and subnet scanning
  • Real-time GUI with live feedback
  • Banner grabbing and vulnerability signature check
  • Results export: TXT, CSV, JSON, PNG
  • Modular, testable, and secure codebase

Setup & Usage

  1. Clone the repository:
    git clone https://github.com/yourusername/port-scanner-project.git
    cd port-scanner-project
  2. Install dependencies:
    pip install -r requirements.txt
  3. Run the GUI:
    python -m src.gui_app
    Or run a CLI scan:
    python -m src.main <target> [start_port] [end_port]

Security & Best Practices

  • No hardcoded secrets; use environment variables (see .env.example)
  • Input validation and error handling throughout
  • See SECURITY.md for responsible disclosure and security policy

Testing & Quality


Contributing

See docs/CONTRIBUTING.md.


Value

  • Recruiter- and reviewer-friendly codebase
  • Secure, maintainable, and extensible for enterprise and open-source
  • Easy to run, understand, and extend

License

MIT License

About

A Python-based multi-threaded network scanner with a simple GUI for scanning individual hosts or entire subnets. Features include real-time scan progress, banner grabbing, basic vulnerability signature checks, and visual graphs showing open ports.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published