liya-tesfaye/port-scanner
GitHub: liya-tesfaye/port-scanner
基于 C 语言和 BSD socket 实现的多线程 TCP 端口扫描器,支持自定义端口范围与超时控制,用于快速探测目标主机开放端口。
Stars: 0 | Forks: 0
# 网络端口扫描器 (C)
一个使用底层 BSD socket 构建的高性能多线程 TCP 端口扫描器。
## 功能
- 使用原始 BSD socket(`socket`、`connect`)进行 **TCP connect 扫描**
- **多线程扫描**(`pthread`)—— 并发扫描多个端口,而非顺序扫描
- **带有超时控制的非阻塞 I/O** —— 避免在无响应的主机/端口上停滞
- 可配置的 IP 和端口范围
- 轻量级、无依赖且速度快
## 构建
```
gcc -o scanner src/scanner.c -lpthread
```
## 用法
```
./scanner
```
### 示例
```
./scanner 192.168.1.1 1 1024
```
## 工作原理
- 生成一个工作线程池,每个线程负责一部分端口范围
- 每个线程尝试对其分配的端口进行非阻塞 TCP connect,使用 `select()`/超时逻辑来避免在无响应的端口上挂起
- 随着连接成功报告开放的端口,并在完成时汇总所有线程的结果
## 技术栈
- C
- POSIX socket、`pthread`
- Linux
## 未来改进
- 通过原始 socket 进行 SYN 扫描(隐蔽扫描模式)
- 对开放端口进行服务/版本检测
- 输出 JSON 以便与其他工具集成
## 作者
**Liya Tesfaye**
标签:Bing搜索, BSD套接字, DNS查询工具, TCP, 客户端加密, 插件系统, 端口扫描器, 网络工具