mrun1corn/portview

GitHub: mrun1corn/portview

一款 Windows CLI 工具,用于列出所有活动的 TCP/UDP 端口、关联所属进程,并显示每个连接的流量统计信息。

Stars: 0 | Forks: 0

# portview 一款 Windows CLI 工具,用于列出所有打开的 TCP/UDP 端口,将它们映射到对应的所属进程,并显示每个连接的流量统计信息。 ![Platform](https://img.shields.io/badge/Platform-Windows-blue?style=flat-square&logo=windows) ![Language](https://img.shields.io/badge/Language-C++17-00599C?style=flat-square&logo=cplusplus) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![Dependencies](https://img.shields.io/badge/Dependencies-None-brightgreen?style=flat-square) ## 功能 - 📋 列出所有处于活动状态的 **TCP 连接**及其状态(LISTENING、ESTABLISHED、TIME_WAIT 等) - 📋 列出所有 **UDP 监听器** - 🔍 将每个端口映射到其**所属进程**(PID + 可执行文件名) - 📊 显示**每个连接的流量统计信息** —— 发送和接收的字节数(需要提权) - 📈 包含连接数和最活跃通信者的**摘要** - ⚡ 单一二进制文件,**零外部依赖** —— 仅基于 Windows SDK 构建 ## 示例输出 ``` portview v1.3 — Windows Port & Traffic Reviewer TCP Connections (14 active) PORT REMOTE STATE PID PROCESS SENT RECV 443 142.250.80.46:443 ESTABLISHED 8124 chrome.exe 12.4 KB 156.2 KB 5432 127.0.0.1:5432 ESTABLISHED 3200 postgres.exe 1.1 MB 3.4 MB 8080 0.0.0.0:* LISTENING 9012 node.exe — — UDP Listeners (6 active) PORT PID PROCESS 53 1124 svchost.exe 5353 8124 chrome.exe Summary: 14 TCP | 6 UDP | Top talker: chrome.exe (168.6 KB) ``` ## 构建 ### 前置条件 - Windows 10/11 - CMake 3.15+ - MSVC (Visual Studio 2019+) 或 MinGW-w64 ### 步骤 ``` mkdir build && cd build cmake .. cmake --build . --config Release ``` 输出的二进制文件是 `build/Release/portview.exe`。 ## 用法 ``` # 基本 — 启动具有实时刷新和滚动的交互式 UI portview.exe # 静态快照 — 输出单个表格捕获(非交互式) portview.exe --static # 带流量统计 — 以管理员身份运行 # 右键点击终端 → “以管理员身份运行” portview.exe ``` ### 交互控制 - **方向键 上/下**:逐行滚动列表 - **Page Up/Down**:逐页滚动列表 - **Home/End**:跳转到列表的顶部/底部 - **Esc/Q**:退出应用程序 ## 工作原理 1. 调用 `GetExtendedTcpTable` / `GetExtendedUdpTable` 来枚举所有连接 2. 通过 `QueryFullProcessImageNameW` 将每个 PID 解析为进程名 3. 如果已提权,则使用 `SetPerTcpConnectionEStats` 启用每连接统计信息收集 4. 通过 `GetPerTcpConnectionEStats` 读取流量数据 5. 格式化并打印表格 所有 API 均来自 Windows SDK(`iphlpapi.h`、`ws2_32.h`)—— 无需第三方库。 ## 项目结构 ``` portview/ ├── CMakeLists.txt # Build configuration ├── main.cpp # All source code ├── README.md # This file ├── PLAN.md # Project plan and architecture ├── TODO.md # Development checklist └── LICENSE # MIT License ``` ## 许可证 MIT
标签:Bash脚本, C++17, HTTP头分析, Windows, 安全意识培训, 端口管理, 进程信息