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(开放)。 ## 免责声明 本工具仅供教育目的和合法的网络安全测试使用。未经所有者明确许可扫描网络是非法且不道德的。请负责任地使用此工具,并且仅在您获得授权的系统上进行测试。作者不对因滥用此工具而造成的任何误用或损害负责。
标签:客户端加密, 插件系统, 数据统计, 端口扫描, 网络扫描器