ffop7/op7-portscanner

GitHub: haux256/op7-portscanner

一款基于 .NET 8 的 Windows 平台 TCP 并行端口扫描器,提供图形界面和自动报告导出功能。

Stars: 0 | Forks: 0

# op7 端口扫描器 v3 ![平台](https://img.shields.io/badge/platform-Windows-blue) ![语言](https://img.shields.io/badge/language-C%23-purple) ![.NET](https://img.shields.io/badge/.NET-8.0-blueviolet) ![许可证](https://img.shields.io/badge/license-MIT-green) ## v3 的变化(对比 v2) | 方面 | 变化 | |---|---| | **注释** | 每个方法都有 XML 文档注释,解释其功能及原因 | | **常量** | 没有魔术数字 — `BannerBufferSize`、`BannerReadDelayMs`、`MaxHistoryEntries` 等 | | **内存** | `ArrayPool.Shared` 重用横幅缓冲区,而不是分配新数组 | | **结构** | 每个文件都使用 `#region` 块,以便轻松浏览大文件 | | **方法** | 长方法被分解为更小、命名清晰的方法(`BuildHeaderPanel`、`AutoSaveTxtAsync` 等) | | **命名** | 全程使用更清晰的变量名(`totalDone`、`resolvedIp`、`wasCancelled`) | | **工厂** | 组件工厂方法(`MakeLabel`、`MakeButton`、`MakeSpinner`)消除了 UI 的重复代码 | | **DNS** | 现在当主机名解析到多个地址时,优先使用 IPv4 | | **OS 猜测** | 提取到了单独的 `GuessOsFromTtl()` 方法中,并附有清晰的说明 | ## 快速开始 ### 要求 - Windows 10 / 11 (64 位) - [.NET SDK 8.0](https://dotnet.microsoft.com/download/dotnet/8.0) ### 构建与运行 双击 **`BUILD_AND_RUN.bat`** ## 文件结构 ``` op7-portscanner/ ├── Models/ │ ├── ScanResult.cs — What we know about one open port │ ├── ScanProfile.cs — A saved scan configuration │ └── ScanHistoryEntry.cs — One past scan stored in history ├── Services/ │ ├── ScanEngine.cs — Parallel async TCP scanner + banner grabber │ ├── NetworkUtils.cs — Ping, DNS, OS fingerprint, host range parser │ ├── ExportService.cs — Save results as TXT / CSV / JSON │ └── PersistenceService.cs — Load/save history & profiles to AppData ├── MainForm.cs — GUI — all UI code with full comments ├── FlowerArt.cs — B&W Aster/Flowey illustration (GDI+) ├── Program.cs — Entry point ([STAThread] + Application.Run) ├── Op7PortScanner.csproj — Project file (no NuGet packages needed) └── BUILD_AND_RUN.bat — One-click build + launch ``` ## 手动构建 ``` dotnet publish Op7PortScanner.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o dist ```
标签:.NET 8, TCP协议, 异步编程, 插件系统, 数据统计, 端口扫描, 网络工具, 网络扫描器