# muhammadtalha15/netprobe architecture

> Architecture diagram of the GitHub repository muhammadtalha15/netprobe, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/muhammadtalha15/netprobe
- Repository: https://github.com/muhammadtalha15/netprobe

## Overview

NetProbe is an interactive C++ network reconnaissance tool. A user selects a port scan, common-port service detection, banner/OS detection, or report view; scan workflows accept a host, normalize and resolve it, probe the resulting IPv4 address, present findings, and record scan results. The log manager also provides filtered log display and an analytics dashboard. The sampled source confirms these calls for host resolution, service detection, and reporting; omitted portions of main.cpp limit certainty about some scan-to-log wiring.

Main entry points: [`main.cpp`](https://github.com/muhammadtalha15/netprobe/blob/main/main.cpp) (Menu and workflows), [`logManager/logManager.cpp`](https://github.com/muhammadtalha15/netprobe/blob/main/logManager/logManager.cpp) (Log manager), [`portscanner/hostresolver.cpp`](https://github.com/muhammadtalha15/netprobe/blob/main/portscanner/hostresolver.cpp) (Host resolver), [`portscanner/portScanner.cpp`](https://github.com/muhammadtalha15/netprobe/blob/main/portscanner/portScanner.cpp) (Port scanner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Interactive workflow"]
  node_main["Menu and workflows<br/>[main.cpp]"]
  node_resolver["Host resolver<br/>[hostresolver.cpp]"]
end

subgraph group_scanning["Network scanning"]
  node_ports["Port scanner<br/>[portScanner.cpp]"]
  node_services["Service detection"]
  node_banner["Banner and OS detection<br/>[bannergrabber.cpp]"]
end

subgraph group_reporting["Reports and logs"]
  node_logs["Log manager<br/>[logManager.cpp]"]
  node_json[("Scan history<br/>[logs.json]")]
  node_csv[("CSV report<br/>[report.csv]")]
end

subgraph group_support["Help and guidance"]
  node_help["Help panel<br/>[help.cpp]"]
end

node_user(("Terminal user"))
node_dns["DNS resolver"]
node_target(("Target network services"))

node_user -->|"selects option"| node_main
node_main -->|"normalizes and resolves"| node_resolver
node_resolver -->|"queries"| node_dns
node_resolver -->|"returns IPv4"| node_main
node_main -->|"scans ports"| node_ports
node_ports -->|"tests TCP ports"| node_target
node_main -->|"detects services"| node_services
node_services -->|"connects to ports"| node_target
node_main -->|"grabs banners"| node_banner
node_banner -->|"connects and reads"| node_target
node_main -->|"records scan results"| node_logs
node_logs -->|"reads and writes"| node_json
node_logs -->|"appends reports"| node_csv
node_main -->|"requests log views"| node_logs
node_main -->|"opens help"| node_help

click node_main "https://github.com/muhammadtalha15/netprobe/blob/main/main.cpp"
click node_resolver "https://github.com/muhammadtalha15/netprobe/blob/main/portscanner/hostresolver.cpp"
click node_ports "https://github.com/muhammadtalha15/netprobe/blob/main/portscanner/portScanner.cpp"
click node_services "https://github.com/muhammadtalha15/netprobe/blob/main/serviceDetection/serviceDetection.cpp"
click node_banner "https://github.com/muhammadtalha15/netprobe/blob/main/bannergrabber/bannergrabber.cpp"
click node_logs "https://github.com/muhammadtalha15/netprobe/blob/main/logManager/logManager.cpp"
click node_json "https://github.com/muhammadtalha15/netprobe/blob/main/log/logs.json"
click node_csv "https://github.com/muhammadtalha15/netprobe/blob/main/log/report.csv"
click node_help "https://github.com/muhammadtalha15/netprobe/blob/main/utilities/help.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_resolver,node_user toneBlue
class node_ports,node_services,node_banner toneAmber
class node_logs,node_json,node_csv toneMint
class node_help toneRose
class node_dns,node_target toneIndigo
```

## Components

### Interactive workflow

- [Menu and workflows](https://github.com/muhammadtalha15/netprobe/blob/main/main.cpp): `main.cpp`
- [Host resolver](https://github.com/muhammadtalha15/netprobe/blob/main/portscanner/hostresolver.cpp): `portscanner/hostresolver.cpp`

### Network scanning

- [Port scanner](https://github.com/muhammadtalha15/netprobe/blob/main/portscanner/portScanner.cpp): `portscanner/portScanner.cpp`
- [Service detection](https://github.com/muhammadtalha15/netprobe/blob/main/serviceDetection/serviceDetection.cpp): `serviceDetection/serviceDetection.cpp`
- [Banner and OS detection](https://github.com/muhammadtalha15/netprobe/blob/main/bannergrabber/bannergrabber.cpp): `bannergrabber/bannergrabber.cpp`

### Reports and logs

- [Log manager](https://github.com/muhammadtalha15/netprobe/blob/main/logManager/logManager.cpp): `logManager/logManager.cpp`
- [Scan history](https://github.com/muhammadtalha15/netprobe/blob/main/log/logs.json): `log/logs.json`
- [CSV report](https://github.com/muhammadtalha15/netprobe/blob/main/log/report.csv): `log/report.csv`

### Help and guidance

- [Help panel](https://github.com/muhammadtalha15/netprobe/blob/main/utilities/help.cpp): `utilities/help.cpp`

### Other components

- **Terminal user**
- **DNS resolver**
- **Target network services**

## Connections

- Terminal user → Menu and workflows: selects option
- Menu and workflows → Host resolver: normalizes and resolves
- Host resolver → DNS resolver: queries
- Host resolver → Menu and workflows: returns IPv4
- Menu and workflows → Port scanner: scans ports
- Port scanner → Target network services: tests TCP ports
- Menu and workflows → Service detection: detects services
- Service detection → Target network services: connects to ports
- Menu and workflows → Banner and OS detection: grabs banners
- Banner and OS detection → Target network services: connects and reads
- Menu and workflows → Log manager: records scan results
- Log manager → Scan history: reads and writes
- Log manager → CSV report: appends reports
- Menu and workflows → Log manager: requests log views
- Menu and workflows → Help panel: opens help
