Jagadish35/simple-port-scanner

GitHub: Jagadish35/simple-port-scanner

一个基于 Boost.Asio 异步 I/O 的轻量级 C++ TCP 端口扫描器,通过并发连接探测快速发现目标主机的开放端口。

Stars: 1 | Forks: 0

# 简单的端口扫描器 一个使用 C++ 构建的轻量级异步 TCP 端口扫描器。我创建这个项目是为了了解网络 socket 和异步 I/O 的底层工作原理。 它不需要在检查下一个端口之前等待当前端口的响应,而是使用 `Boost.Asio` 并发处理多个连接尝试,从而大大加快了扫描过程。 ## 功能 - **快速扫描:** 使用异步操作同时扫描数百个端口。 - **自定义目标:** 扫描任何本地 IP、远程 IP 或域名。 - **超时控制:** 自动处理丢弃的数据包和防火墙拦截(被过滤的端口)。 - **简单的 CLI:** 使用 `Boost.Program_Options` 提供简洁的命令行界面。 ## 技术栈 - **编程语言:** 现代 C++ - **网络:** Boost.Asio - **构建系统:** CMake, MinGW-w64 (MSYS2) ## 如何构建 确保你已安装 CMake、一个 C++ 编译器以及 Boost 库(`system`, `program_options`)。 1. **克隆仓库:** git clone https://github.com/Jagadish35/simple-port-scanner.git cd simple-port-scanner 2.**创建构建目录:** ``` mkdir build cd build ``` 3.**编译代码:** **. 对于 Windows:** ```bash cmake -G "MinGW Makefiles" cmake --build . ``` **. 对于 Linux:** ```bash cmake .. make ``` ## 如何运行 编译完成后,直接在终端中运行可执行文件。 **基本语法:** - **Windows:** `.\simplePortScanner.exe -i -p -e ` - **Linux:** `./simplePortScanner -i -p -e ` **示例:** 扫描你自己的 localhost(前 1024 个端口): - Windows:`.\simplePortScanner.exe -i 127.0.0.1 -p 1-1024` - Linux:`./simplePortScanner -i 127.0.0.1 -p 1-1024` 以 5 秒的超时时间扫描 Nmap 的测试服务器的指定端口: - Windows:`.\simplePortScanner.exe -i scanme.nmap.org -p 22,80,443,8080 -e 5` - Linux:`./simplePortScanner -i scanme.nmap.org -p 22,80,443,8080 -e 5`
标签:Bash脚本, Boost.Asio, C++, CLI, WiFi技术, 异步IO, 插件系统, 数据擦除, 数据统计, 端口扫描, 网络工具, 网络编程