Rogue1998-wq/port_scanner
GitHub: Rogue1998-wq/port_scanner
一个基于 C 语言和 pthread 多线程技术的高性能 TCP 端口扫描器,可快速探测目标主机指定端口范围内的开放状态。
Stars: 0 | Forks: 0
# 快速 TCP 端口扫描器 (C)
这是一个用 C 语言编写的快速、多线程 TCP 端口扫描器。它的功能类似于迷你版 Nmap,允许您扫描目标 IP 地址在指定范围内的开放 TCP 端口。此工具可用于网络侦察、识别开放服务以及了解目标系统的攻击面。
## 功能
* **快速扫描**:利用多线程并发扫描多个端口。
* **可自定义端口范围**:指定扫描的起始和结束端口。
* **可调整线程数**:控制并发线程的数量以实现最佳性能。
* **简单高效**:使用 C 语言编写,具有高性能和低资源消耗的特点。
## 安装与编译
1. **克隆仓库**(或下载 `port_scanner.c` 文件):
git clone https://github.com/your-username/fast-tcp-port-scanner.git
cd fast-tcp-port-scanner
2. **编译源代码**:
您的系统上需要安装 C 编译器(如 GCC)。使用以下命令进行编译:
gcc -o port_scanner port_scanner.c -pthread
* `-o port_scanner`:指定输出的可执行文件名。
* `port_scanner.c`:源代码文件。
* `-pthread`:链接 POSIX 线程库,这是实现多线程所必需的。
## 用法
在终端中运行编译后的可执行文件,提供目标 IP 地址、起始端口、结束端口,以及可选的最大线程数:
```
./port_scanner [MAX_THREADS]
```
**参数**:
* ``:您要扫描的目标主机的 IP 地址(例如 `192.168.1.1` 或 `10.0.0.1`)。
* ``:要扫描的端口范围中的第一个端口(例如 `1`)。
* ``:要扫描的端口范围中的最后一个端口(例如 `1024` 或 `65535`)。
* `[MAX_THREADS]`:(可选)用于扫描的最大线程数。如果未指定,默认为 `200`。该值必须在 1 到 200 之间。
**示例**:
* **使用默认线程数 (200) 扫描 192.168.1.1 上的 1-1024 端口**:
./port_scanner 192.168.1.1 1 1024
* **使用 50 个线程扫描 example.com 的 80-443 端口(需先解析 IP)**:
# 首先,解析 example.com 的 IP 地址
# dig +short example.com
# 然后在扫描器中使用该 IP 地址
./port_scanner 93.184.216.34 80 443 50
## 工作原理
`port_scanner` 程序会创建多个线程,每个线程负责尝试与目标 IP 地址上的特定端口建立 TCP 连接。它使用非阻塞 socket 和 `select()` 系统调用来高效管理连接并实现超时机制。如果连接成功建立(即使很短暂,在被关闭之前),该端口将被报告为 OPEN(开放)。
## 免责声明
本工具仅供教育目的和合法的网络安全测试使用。未经所有者明确许可扫描网络是非法且不道德的。请负责任地使用此工具,并且仅在您获得授权的系统上进行测试。作者不对因滥用此工具而造成的任何误用或损害负责。
标签:客户端加密, 插件系统, 数据统计, 端口扫描, 网络扫描器