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, 客户端加密, 插件系统, 端口扫描器, 网络工具