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, 插件系统, 数据擦除, 数据统计, 端口扫描, 网络工具, 网络编程